The DispatchChallengeHandler type exposes the following members.

Constructors

  NameDescription
Protected methodDispatchChallengeHandler

Methods

  NameDescription
Public methodCanHandle (Overrides ChallengeHandler..::..CanHandle(ChallengeRequest).)
Public methodEquals (Inherited from Object.)
Protected methodFinalize (Inherited from Object.)
Public methodGetHashCode (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Public methodHandle (Overrides ChallengeHandler..::..Handle(ChallengeRequest).)
Protected methodMemberwiseClone (Inherited from Object.)
Public methodRegister
Register a challenge handler to respond to challenges at one or more locations.

When a challenge is received for a protected URI, the {@code locationDescription} matches against elements of the protected URI; if a match is found, one consults the challenge handler(s) registered at that {@code locationDescription} to find a challenge handler suitable to respond to the challenge.

A {@code locationDescription} comprises a username, password, host, port and paths, any of which can be wild-carded with the "*" character to match any number of request URIs. If no port is explicitly mentioned in a {@code locationDescription}, a default port will be inferred based on the scheme mentioned in the location description, according to the following table:

 Copy imageCopy Code
             | scheme  |   default port   |   Sample locationDescription   
             +---------+------------------+-----------------------------
             | http    |        80        |   foo.example.com or http://foo.example.com
             | ws      |        80        |   foo.example.com or ws://foo.example.com
             | https   |       443        |   https://foo.example.com
             | wss     |       443        |   wss://foo.example.com
             +---------+------------------+-----------------------------
             

The protocol scheme (e.g. http or ws) if present in {@code locationDescription} will not be used to match {@code locationDescription} with the protected URI, because authentication challenges are implemented on top of one of the HTTP/s protocols always, whether one is initiating web socket connections or regular HTTP connections. That is to say for example, the locationDescription {@code "foo.example.com"} matches both URIs {@code http://foo.example.com} and {@code ws://foo.example.com}.

Some examples of {@code locationDescription} values with wildcards are:

  1. {@code *}/ -- matches all requests to any host on port 80 (default port), with no user info or path specified.
  2. {@code *.hostname.com:8000} -- matches all requests to port 8000 on any sub-domain of {@code hostname.com}, but not {@code hostname.com} itself.
  3. {@code server.hostname.com:*}/{@code *} -- matches all requests to a particular server on any port on any path but not the empty path.

the (possibly wild-carded) location(s) at which to register a handler.the challenge handler to register at the location(s).

Return Value

a reference to this challenge handler for chained calls
Public methodToString (Inherited from Object.)
Public methodUnregister

If the provided challengeHandler is registered at the provided location, clear that association such that any future challenge requests matching the location will never be handled by the provided challenge handler.

If no such location or challengeHandler registration exists, this method silently succeeds. the exact location description at which the challenge handler was originally registeredthe challenge handler to de-register.

Return Value

a reference to this object for chained call support

See Also