📄 hxauthn.h
字号:
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 IHXServerAuthResponse
DECLARE_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 IHXUserContext
DECLARE_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 IHXUserProperties
DECLARE_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 IHXUserImpersonation
DECLARE_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 IHXChallenge
DECLARE_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 IHXChallengeResponse
DECLARE_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 + -