IHttpUser 接口

提供有关用户的特定于请求的信息。 此信息包括凭据和基于角色的授权等数据。

语法

class IHttpUser  

方法

下表列出了 接口公开 IHttpUser 的方法。

主题 说明
DereferenceUser 递减用户内部引用计数。
GetAuthenticationType 返回请求身份验证类型。
GetImpersonationToken 返回用户模拟令牌。
GetPassword 返回用户密码。
GetPrimaryToken 返回主要用户令牌。
GetRemoteUserName 返回远程用户名。
GetUserName 返回用户名。
GetUserVariable 按名称返回自定义用户数据。
IsInRole 返回一个值,该值指示用户是否获得命名角色的授权。
ReferenceUser 递增用户内部引用计数。
SupportsIsInRole 返回一个值,该值指示是否为用户启用角色支持。

派生类

此接口不包含派生类。

备注

可以通过调用 IHttpContext::GetUser 方法从 IHttpContext 指针检索IHttpUser指针。 若要获取对这些接口的访问权限,请参阅 演练:使用本机代码创建Request-Level HTTP 模块

示例

下面的代码示例演示如何创建一个 HTTP 模块,该模块清除响应标头和正文,然后将用户信息作为 XML 文档返回给客户端。

上述代码将类似于以下内容的 XML 写入响应流。

<?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" />  

模块必须导出 RegisterModule 函数。 可以通过为项目创建模块定义 (.def) 文件导出此函数,也可以使用 开关编译模块 /EXPORT:RegisterModule 。 有关详细信息,请参阅 演练:使用本机代码创建Request-Level HTTP 模块

可以选择使用调用约定编译代码, __stdcall (/Gz) 而不是为每个函数显式声明调用约定。

要求

类型 说明
客户端 - Windows Vista 上的 IIS 7.0
- Windows 7 上的 IIS 7.5
- Windows 8 上的 IIS 8.0
- Windows 10 上的 IIS 10.0
服务器 - Windows Server 2008 上的 IIS 7.0
- Windows Server 2008 R2 上的 IIS 7.5
- Windows Server 2012 上的 IIS 8.0
- Windows Server 2012 R2 上的 IIS 8.5
- Windows Server 2016 上的 IIS 10.0
产品 - 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

另请参阅

Web 服务器核心接口