IWMSAuthenticationContext::GetImpersonationToken
Previous | Next |
IWMSAuthenticationContext::GetImpersonationToken
The GetImpersonationToken method retrieves the handle of the Windows 2000 security user or group account that the authentication context simulates if authentication succeeds.
Syntax
HRESULT GetImpersonationToken( long* Token );
Parameters
Token
[out] Pointer to the long containing the handle.
Return Values
If the method succeeds, the plug-in must return S_OK. To report an error, the plug-in can return any HRESULT other than S_OK. If the plug-in uses the IWMSEventLog interface to log error information directly to the Windows Event Viewer, it is recommended that it return NS_E_PLUGIN_ERROR_REPORTED. Typically, the server attempts to make plug-in error information available to the server object model, the Windows Event Viewer, and the troubleshooting list in the details pane of the Windows Media Services MMC. However, if the plug-in uses the IWMSEventLog interface to send custom error information to the Windows Event Viewer, returning NS_E_PLUGIN_ERROR_REPORTED stops the server from also logging to the event viewer. For more information about retrieving plug-in error information, see Identifying Plug-in Errors.
Remarks
How you create the handle depends upon the authentication protocol that your plug-in is designed to implement. For example, a Digest Authentication plug-in can use the ImpersonateLoggedOnUser Windows API function, and NTLM can use the QuerySecurityContextToken function. These functions are documented in the Platform SDK.
Example Code
HRESULT CAuthentContext::GetImpersonationToken( long* Token ) { // Use the Windows API function ImpersonateLoggedOnUser() to // retrieve the handle. ImpersonateLoggedOnUser()lets the calling // thread impersonate the security context of a logged on user. ImpersonateLoggedOnUser( m_hToken ); *Token = (long) m_hToken; return( S_OK ); }
Requirements
Header: authen.h.
Library: WMSServerTypeLib.dll.
Platform: Windows Server 2003, Enterprise Edition; Windows Server 2003, Datacenter Edition; Windows Server 2008.
See Also
Previous | Next |