IHttpUser Interface
TOC
Collapse the table of content
Expand the table of content

IHttpUser Interface

IIS 7.0
 

Provides request-specific information about a user. This information includes data such as credentials and role-based authorization.

class IHttpUser

The following table lists the methods exposed by the IHttpUser interface.

Topic

Description

DereferenceUser

Decrements the user internal reference count.

GetAuthenticationType

Returns the request authentication type.

GetImpersonationToken

Returns the user impersonation token.

GetPassword

Returns the user password.

GetPrimaryToken

Returns the primary user token.

GetRemoteUserName

Returns the remote user name.

GetUserName

Returns the user name.

GetUserVariable

Returns the custom user data by name.

IsInRole

Returns a value that indicates whether the user is authorized for a named role.

ReferenceUser

Increments the user internal reference count.

SupportsIsInRole

Returns a value that indicates whether role support is enabled for the user.

This interface contains no derived classes.

You can retrieve an IHttpUser pointer from an IHttpContext pointer by calling the IHttpContext::GetUser method. To gain access to these interfaces, see Walkthrough: Creating a Request-Level HTTP Module By Using Native Code.

Example

The following code example demonstrates how to create an HTTP module that clears the response headers and body and then returns user information to the client as an XML document.

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

<?xml version="1.0" ?>
<user 
    userName="DOMAIN\user" 
    remoteName=" DOMAIN\user" 
    passWord="[hidden]" 
    authType="Negotiate" 
    impersonationToken="valid" 
    primaryToken="valid" 
    supportsRoles="true" 
    isInRole="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:
© 2016 Microsoft