RPC_HTTP_TRANSPORT_CREDENTIALS_W结构(rpcdce.h)
RPC_HTTP_TRANSPORT_CREDENTIALS 结构定义其他凭据,以便在使用 RPC/HTTP 时向 RPC 代理服务器进行身份验证。
语法
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W {
SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned short *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_W;
成员
TransportCredentials
指向包含用户用户名、域和密码的 SEC_WINNT_AUTH_IDENTITY 结构的指针。
Flags
可以与按位 OR 运算符组合的一组标志。
AuthenticationTarget
指定身份验证目标。
应设置为以下一个或两个值:
价值 | 意义 |
---|---|
|
从 HTTP 的角度来看,对 RPC 代理进行身份验证,这是 HTTP 服务器。 这是最常见的值。 |
|
针对 HTTP 代理进行身份验证。 此值不常见。 |
NumberOfAuthnSchemes
AuthnScheme 数组中的元素数。
AuthnSchemes
ServerCertificateSubject
包含具有预期服务器主体名称的可选字符串。 主体名称的格式与为 RpcCertGeneratePrincipalName 生成的相同格式(有关详细信息,请参阅 主体名称)。 仅当使用 SSL 时,才使用此成员。 在这种情况下,会根据生成的主体名称检查服务器证书。 如果不匹配,则返回错误。 此成员使客户端能够对 RPC 代理进行身份验证。
言论
如果 TransportCredentials 成员 NULL,并且身份验证方案为 NTLM,则使用当前登录用户的凭据。 为了避免通过弱 LM 哈希公开网络上的用户凭据,仅当以下一个或两个条件都为 true 时才使用用户登录凭据:
- 调用方请求使用 SSL,并使用 ServerCertificateSubject 成员。 此方案保证凭据在传输中和最终目标中都受到保护,即使使用弱哈希也是如此。
- lncompatibilitylevel 键设置为 2 或更高。 这会导致 NTLM 安全提供程序仅发出或响应强 NT 哈希,而不是弱 LM 哈希。 此外,建议客户使用级别 3 或更高版本,这将尝试 NTLMv2。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 具有 SP1 的 Windows XP [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | rpcdce.h (包括 Rpc.h) |
另请参阅
RPC_HTTP_TRANSPORT_CREDENTIALS_V2
RPC_HTTP_TRANSPORT_CREDENTIALS_V3
通过 HTTP 使用 RPC 远程过程调用