📄 rmaauthn.pas
字号:
unit RmaAuthn;
interface
uses
PnResult, PnTypes, RmaFiles, RmaPckts;
(****************************************************************************
*
* $Id: rmaauthn.h,v 1.12 1999/01/29 18:32:10 hboone Exp $
*
* Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
*
* http://www.real.com/devzone
*
* This program contains proprietary
* information of Progressive Networks, Inc, and is licensed
* subject to restrictions on use and distribution.
*
*
* RealMedia Architecture Interface.
*
*)
(****************************************************************************
*
* Interface:
*
* IRMACredRequestResponse
*
* Purpose:
*
* This is implemented by a client authenticator in order to receive
* the credentials requested in IRMACredRequest::GetCredentials
*
* IRMACredRequestResponse:
*
* {00002800-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMACredRequestResponse: TGUID = '{00002800-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMACredRequestResponse}
type
IRMACredRequestResponse = interface (IUnknown)
['{00002800-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMACredRequestResponse::CredentialsReady
* Purpose:
*
* Reports the success or failure of
* IRMACredRequest::GetCredentials
*
* If successful pValuesCredentials contains the requested
* credentials. (usually CString:Username and CString:Password)
*
*)
function CredentialsReady(ResultStatus: PN_RESULT; pValuesCredentials: IRMAValues): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMACredRequestResponse}
(****************************************************************************
*
* Interface:
*
* IRMACredRequest
*
* Purpose:
*
* This is queried from the response interface passed into
* IRMAClientAuthConversation::MakeResponse. MakeResponse
* uses it to request the current user to enter their credentials.
*
* IRMACredRequest:
*
* {00002801-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMACredRequest: TGUID = '{00002801-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMACredRequest}
type
IRMACredRequest = interface (IUnknown)
['{00002801-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMACredRequest::GetCredentials
* Purpose:
*
* Call this to request the credentials. Usually presents UI to
* the user asking for username and password.
*
* While ignored at this time, pValuesCredentialRequest should
* contain CString properties that describe the reason for the
* request. (like the URL, the Realm, the Auth protocol, and how
* secure it is, etc..) In the future this data will be displayed
* to the user.
*
*)
function GetCredentials(pCredRequestResponseRequester: IRMACredRequestResponse;
pValuesCredentialRequest: IRMAValues): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMACredRequest}
(****************************************************************************
*
* Interface:
*
* IRMAClientAuthResponse
*
* Purpose:
*
* This is implemented by the client core in order to receive the
* response generated by IRMAClientAuthConversation::MakeResponse
*
* IRMAClientAuthResponse:
*
* {00002802-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAClientAuthResponse: TGUID = '{00002802-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAClientAuthResponse}
type
IRMAClientAuthResponse = interface (IUnknown)
['{00002802-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAClientAuthResponse::ResponseReady
* Purpose:
*
* Reports the success or failure of
* IRMAClientAuthConversation::MakeResponse
*
* pRequestResponseHeaders should be the same Request object
* that was passed into MakeResponse, it should contain
* CString values for each MimeHeader it wishes to send to
* the Server.
*
*)
function ResponseReady(ResultStatus: PN_RESULT; pRequestResponseHeaders: IRMARequest): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAClientAuthResponse}
(****************************************************************************
*
* Interface:
*
* IRMAClientAuthConversation
*
* Purpose:
*
* This is implemented by a client authenticator in order to perform
* the client side of an authentication protocol.
*
* IRMAClientAuthConversation:
*
* {00002803-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAClientAuthConversation: TGUID = '{00002803-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAClientAuthConversation}
CLSID_CRMAClientAuthenticator: TGUID = '{00002803-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_CRMAClientAuthenticator}
type
IRMAClientAuthConversation = interface (IUnknown)
['{00002803-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAClientAuthConversation::MakeResponse
* Purpose:
*
* Call this when a challenge is received from the server.
*
* pRequestChallengeHeaders should contain the server challenge.
*
*)
function MakeResponse(pClientAuthResponseRequester: IRMAClientAuthResponse;
pRequestChallengeHeaders: IRMARequest): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMAClientAuthConversation::IsDone
* Purpose:
*
* Call this to determine whether the conversation is complete.
* (some protocols have more then one message exchange.)
*
*)
function IsDone: BOOL; stdcall;
(************************************************************************
* Method:
* IRMAClientAuthConversation::Authenticated
* Purpose:
*
* Call this to signal the authenticator that the conversation
* just completed succeeded or failed.
*
*)
function Authenticated(bAuthenticated: BOOL): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAClientAuthConversation}
(****************************************************************************
*
* Interface:
*
* IRMAServerAuthResponse
*
* Purpose:
*
* This is implemented by various server plugins in order to receive the
* challenge generated by IRMAServerAuthConversation::MakeChallenge
*
* IRMAServerAuthResponse:
*
* {00002804-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAServerAuthResponse: TGUID = '{00002804-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAServerAuthResponse}
type
IRMAServerAuthResponse = interface (IUnknown)
['{00002804-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAServerAuthResponse::ChallengeReady
* Purpose:
*
* Reports the success or failure of
* IRMAServerAuthConversation::MakeChallenge
*
* pRequestChallengeHeaders 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 ChallengeReady(ResultStatus: PN_RESULT; pRequestChallengeHeaders: IRMARequest): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAServerAuthResponse}
(****************************************************************************
*
* Interface:
*
* IRMAServerAuthConversation
*
* Purpose:
*
* This is implemented by a server authenticator in order to perform
* the server side of an authentication protocol.
*
* IRMAServerAuthConversation:
*
* {00002805-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAServerAuthConversation: TGUID = '{00002805-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAServerAuthConversation}
(*
* The IRMACommonClassFactory supports creating an instance
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -