📄 hxauthn.h
字号:
* have any credentials from the client. * */ STDMETHOD(MakeChallenge) ( THIS_ IHXServerAuthResponse* pServerAuthResponseRequester, IHXRequest* pRequestResponseHeaders ) PURE; /************************************************************************ * Method: * IHXServerAuthConversation::IsAuthenticated * Purpose: * * Call this to determine whether the last response from the * client completed the authentication successfully. * */ STDMETHOD_(BOOL,IsAuthenticated)(THIS) PURE; /************************************************************************ * Method: * IHXServerAuthConversation::GetUserContext * Purpose: * * Call this to retrieve the Context of the user that completed * authentication successfully. * * If successful pUnknownUser is a valid context * */ STDMETHOD(GetUserContext)(THIS_ REF(IUnknown*) pUnknownUser) PURE;};/**************************************************************************** * * Interface: * * IHXServerAuthResponse * * Purpose: * * This is implemented by various server plugins in order to receive the * challenge generated by IHXServerAuthConversation::MakeChallenge * * IHXServerAuthResponse: * * {00002804-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXServerAuthResponse, 0x00002804, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXServerAuthResponseDECLARE_INTERFACE_(IHXServerAuthResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /************************************************************************ * Method: * IHXServerAuthResponse::ChallengeReady * Purpose: * * Reports the success or failure of * IHXServerAuthConversation::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. * */ STDMETHOD(ChallengeReady) ( THIS_ HX_RESULT ResultStatus, IHXRequest* pRequestChallengeHeaders ) PURE;};/**************************************************************************** * * Interface: * * IHXUserContext * * Purpose: * * This is implemented by a user context in order to provide * access to information about the currently authenticated user. * * IHXUserContext: * * {00002806-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXUserContext, 0x00002806, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXUserContextDECLARE_INTERFACE_(IHXUserContext, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /************************************************************************ * Method: * IHXUserContext::IsMemberOf * Purpose: * * Call this to determine whether the authenticated user * is a member of the specified group. * */ STDMETHOD(IsMemberOf)(THIS_ IHXBuffer* pBufferGroupID) PURE;};/**************************************************************************** * * Interface: * * IHXUserProperties * * Purpose: * * This is implemented by a user context in order to provide * access to properties of the currently authenticated user. * * IHXUserProperties: * * {00002807-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXUserProperties, 0x00002807, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXUserPropertiesDECLARE_INTERFACE_(IHXUserProperties, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /************************************************************************ * Method: * IHXUserProperties::GetPrincipalID * Purpose: * * Call this to determine the principalID of the authenticated user. * */ STDMETHOD(GetPrincipalID)(THIS_ REF(IHXBuffer*) pBufferPrincipalID) PURE; /************************************************************************ * Method: * IHXUserProperties::GetAuthorityName * Purpose: * * Call this to determine the authority name that authorized the * authenticated user. (realm or domain name) * */ STDMETHOD(GetAuthorityName)(THIS_ REF(IHXBuffer*) pBufferAuthorityName) PURE;};/**************************************************************************** * * Interface: * * IHXUserImpersonation * * Purpose: * * This can be implemented by a user context in order to provide * the ability to have the server impersonate the currently authenticated * user. * * IHXUserImpersonation: * * {00002808-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXUserImpersonation, 0x00002808, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXUserImpersonationDECLARE_INTERFACE_(IHXUserImpersonation, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /************************************************************************ * Method: * IHXUserImpersonation::Start * Purpose: * * Call this to impersonate the authenticated user. * */ STDMETHOD(Start)(THIS) PURE; /************************************************************************ * Method: * IHXUserImpersonation::Stop * Purpose: * * Call this to stop impersonating the authenticated user. * */ STDMETHOD(Stop)(THIS) PURE;};/**************************************************************************** * * Interface: * * IHXChallenge * * 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 IHXRequest object * and can be retrieved by calling IHXRequestContext::GetRequester() * if it is absent then the protocol that this request was made on * does not support multi-message authentication (PNA doesn't) ) * * IHXChallenge: * * {0000280A-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXChallenge, 0x0000280A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXChallengeDECLARE_INTERFACE_(IHXChallenge, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /************************************************************************ * Method: * IHXChallenge::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. * */ STDMETHOD(SendChallenge) ( THIS_ IHXChallengeResponse* pChallengeResponseSender, IHXRequest* pRequestChallenge ) PURE;};/**************************************************************************** * * Interface: * * IHXChallengeResponse * * Purpose: * * This is implemented by a server authenticator in order to * receive the Response returned by the client in response to * IHXChallenge::SendChallenge. * * IHXChallengeResponse: * * {00002809-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXChallengeResponse, 0x00002809, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXChallengeResponseDECLARE_INTERFACE_(IHXChallengeResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /************************************************************************ * Method: * IHXChallengeResponse::ResponseReady * Purpose: * * Called this to return the additional information requested * from IHXChallenge::SendChallenge. * * pRequestResponse should be the same Request object * that was passed into MakeChallenge and SendChallenge. * */ STDMETHOD(ResponseReady) ( THIS_ IHXRequest* pRequestResponse ) PURE;};#endif //!_HXAUTHN_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -