📄 rmaauthn.pas
字号:
* of this object.
*)
CLSID_CRMAServerAuthenticator: TGUID = '{00002805-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_CRMAServerAuthenticator}
type
IRMAServerAuthConversation = interface (IUnknown)
['{00002805-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAServerAuthConversation::MakeChallenge
* Purpose:
*
* Call this to create a challenge for a client. If the request
* passed in does not contain a respose from the client, then it
* will generate the initial challenge.
*
* pRequestResponseHeaders is the request for a secured URL. If
* this is the initial request for the URL it probably does not
* have any credentials from the client.
*
*)
function MakeChallenge(pServerAuthResponseRequester: IRMAServerAuthResponse;
pRequestResponseHeaders: IRMARequest): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMAServerAuthConversation::IsAuthenticated
* Purpose:
*
* Call this to determine whether the last response from the
* client completed the authentication successfully.
*
*)
function IsAuthenticated: BOOL; stdcall;
(************************************************************************
* Method:
* IRMAServerAuthConversation::GetUserContext
* Purpose:
*
* Call this to retrieve the Context of the user that completed
* authentication successfully.
*
* If successful pUnknownUser is a valid context
*
*)
function GetUserContext(out pUnknownUser: IUnknown): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAServerAuthConversation}
(****************************************************************************
*
* Interface:
*
* IRMAUserContext
*
* Purpose:
*
* This is implemented by a user context in order to provide
* access to information about the currently authenticated user.
*
* IRMAUserContext:
*
* {00002806-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAUserContext: TGUID = '{00002806-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAUserContext}
type
IRMAUserContext = interface (IUnknown)
['{00002806-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAUserContext::IsMemberOf
* Purpose:
*
* Call this to determine whether the authenticated user
* is a member of the specified group.
*
*)
function IsMemberOf(pBufferGroupID: IRMABuffer): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAUserContext}
(****************************************************************************
*
* Interface:
*
* IRMAUserProperties
*
* Purpose:
*
* This is implemented by a user context in order to provide
* access to properties of the currently authenticated user.
*
* IRMAUserProperties:
*
* {00002807-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAUserProperties: TGUID = '{00002807-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAUserProperties}
type
IRMAUserProperties = interface (IUnknown)
['{00002807-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAUserProperties::GetPrincipalID
* Purpose:
*
* Call this to determine the principalID of the authenticated user.
*
*)
function GetPrincipalID(out pBufferPrincipalID: IRMABuffer): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMAUserProperties::GetAuthorityName
* Purpose:
*
* Call this to determine the authority name that authorized the
* authenticated user. (realm or domain name)
*
*)
function GetAuthorityName(out pBufferAuthorityName: IRMABuffer): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAUserProperties}
(****************************************************************************
*
* Interface:
*
* IRMAUserImpersonation
*
* Purpose:
*
* This can be implemented by a user context in order to provide
* the ability to have the server impersonate the currently authenticated
* user.
*
* IRMAUserImpersonation:
*
* {00002808-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAUserImpersonation: TGUID = '{00002808-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAUserImpersonation}
type
IRMAUserImpersonation = interface (IUnknown)
['{00002808-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAUserImpersonation::Start
* Purpose:
*
* Call this to impersonate the authenticated user.
*
*)
function Start: HRESULT; stdcall;
(************************************************************************
* Method:
* IRMAUserImpersonation::Stop
* Purpose:
*
* Call this to stop impersonating the authenticated user.
*
*)
function Stop: HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAUserImpersonation}
(****************************************************************************
*
* Interface:
*
* IRMAChallengeResponse
*
* Purpose:
*
* This is implemented by a server authenticator in order to
* receive the Response returned by the client in response to
* IRMAChallenge::SendChallenge.
*
* IRMAChallengeResponse:
*
* {00002809-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAChallengeResponse: TGUID = '{00002809-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAChallengeResponse}
type
IRMAChallengeResponse = interface (IUnknown)
['{00002809-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAChallengeResponse::ResponseReady
* Purpose:
*
* Called this to return the additional information requested
* from IRMAChallenge::SendChallenge.
*
* pRequestResponse should be the same Request object
* that was passed into MakeChallenge and SendChallenge.
*
*)
function ResponseReady(pRequestResponse: IRMARequest): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAChallengeResponse}
(****************************************************************************
*
* Interface:
*
* IRMAChallenge
*
* Purpose:
*
* This is implemented by the server core in order to allow
* additional exchanges of information with the client without
* creating a new request. (It is stored in the IRMARequest object
* and can be retrieved by calling IRMARequestContext::GetRequester()
* if it is absent then the protocol that this request was made on
* does not support multi-message authentication (PNA doesn't) )
*
* IRMAChallenge:
*
* {0000280A-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAChallenge: TGUID = '{0000280A-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAChallenge}
type
IRMAChallenge = interface (IUnknown)
['{0000280A-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAChallenge::SendChallenge
* Purpose:
*
* Call this to request additional information from the client.
*
* pRequestChallenge should be the same Request object
* that was passed into MakeChallenge, it should contain
* CString values for each MimeHeader it wishes to send to
* the client.
*
*)
function SendChallenge(pChallengeResponseSender: IRMAChallengeResponse;
pRequestChallenge: IRMARequest): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAChallenge}
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -