Indy 9 | Content | Index | Reference

TIdDigestAuthentication
Hierarchy, Methods, See Also, Unit: IdAuthenticationDigest
Implements the HTTP Digest Access Authentication scheme.

    TIdDigestAuthentication = class(TIDAuthentication)

Unit
IdAuthenticationDigest
Description
TIdDigestAuthentication is a TIdAuthentication descendant that implements the specifics of the HTTP Digest Access Authentication scheme, as described in the Internet Standards document:

- RFC 2617, HTTP Authentication: Basic and Digest Access Authentication (http://www.rfc-editor.org/rfc/rfc2617.txt)

TIdDigestAuthentication is based on a challenge-response model, where a client responds to a nonce value using a message digest containing the Username, Password, Nonce, and Realm for the request. The default message digest algorithm for TIdDigestAuthentication is the MD5 algorithm.

TIdDigestAuthentication requires that a server challenge contain headers for WWW-Authenticate, Authorization, and Authorization-Info to allow proper operation of the authentication scheme. The client must construct a message digest containing the specified values, to be verified using the same algorithm on the server. The message digest is calculated using the following format and values:

          Username:Realm:Password:Nonce

TIdDigestAuthentication.Authentication
TIdDigestAuthentication
Calculates the Authentication credentials and message digest.

    function Authentication: String; override;

Return Value
String - Authentication credentials for the user and realm.
Description
Authentication is an overridden String function in TIdDigestAuthentication that returns the credentials and the message digest required for the authentication scheme. The return value is in the form:

    Digest username="jdoe" realm="http://www.domain.com" result="00112233445566778899aabbccddeeff"

TIdDigestAuthentication.Destroy
TIdDigestAuthentication, See Also
Frees the object instance.

    destructor Destroy; override;

Description
Destroy is the destructor for the object instance. Destroy frees resource allocated to internal member variables like QOp options and Domain. Destroy calls the inherited Destroy method prior to exiting.

Created with Doc-O-Matic 2 donated to Project JEDI. Commercial license available from the Doc-O-Matic site.