IAuthenticationProvider::SetUser Method

IIS 7.0
 

Sets the authenticated user on the authentication provider.

virtual VOID SetUser(
   IHttpUser* pUser
) = 0;

pUser

An authenticated pointer to an IHttpUser.

If the pUser parameter is NULL, the default authentication continues.

Calling the SetUser method with a non-NULL IHttpUser pointer will authenticate that user immediately.

IAuthenticationProvider implementers assume responsibility for memory management with this data; therefore, IAuthenticationProvider implementers must call the IHttpUser::DereferenceUser method when they no longer need the IHttpUser.

IAuthenticationProvider callers are responsible for creating a custom IHttpUser pointer on the heap before calling SetUser; IAuthenticationProvider implementers then assume responsibility for this new pointer.

Example

The following code example demonstrates how to create an HTTP module that allows any user to access a Web site by creating an authenticated user. The example then clears the response headers and body and returns the user information to the client.

System_CAPS_cautionCaution

The following code example authenticates all users by creating a custom IHttpUser pointer with the name ValidUser.

The above code writes XML that is similar to the following to the response stream.

<?xml version="1.0" ?>
<user 
    userName="ValidUser" 
    remoteName=" ValidUser" 
    passWord="[hidden]" 
    authType="Anonymous" 
    impersonationToken="NULL" 
    primaryToken="NULL" 
    supportsRoles="false" 
    userVariable="NULL" />

Your module must export the RegisterModule function. You can export this function by creating a module definition (.def) file for your project, or you can compile the module by using the /EXPORT:RegisterModule switch. For more information, see Walkthrough: Creating a Request-Level HTTP Module By Using Native Code.

You can optionally compile the code by using the __stdcall (/Gz) calling convention instead of explicitly declaring the calling convention for each function.

Requirements

Type

Description

Client

  • IIS 7.0 on Windows Vista

  • IIS 7.5 on Windows 7

  • IIS 8.0 on Windows 8

  • IIS 10.0 on Windows 10

Server

  • IIS 7.0 on Windows Server 2008

  • IIS 7.5 on Windows Server 2008 R2

  • IIS 8.0 on Windows Server 2012

  • IIS 8.5 on Windows Server 2012 R2

  • IIS 10.0 on Windows Server 2016 Technical Preview

Product

  • IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0

  • IIS Express 7.5, IIS Express 8.0, IIS Express 10.0

Header

Httpserv.h

Show: