Share via


IWMSAuthenticationContext::GetImpersonationToken

banner art

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