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 |