⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rmaauthn.pas

📁 Delphi源码REAlRMSDK.rar
💻 PAS
📖 第 1 页 / 共 2 页
字号:
 *  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 + -