COAUTHINFO 结构 (wtypesbase.h)

包含从客户端计算机到服务器计算机发出远程激活请求时使用的身份验证设置。

语法

typedef struct _COAUTHINFO {
  DWORD          dwAuthnSvc;
  DWORD          dwAuthzSvc;
  LPWSTR         pwszServerPrincName;
  DWORD          dwAuthnLevel;
  DWORD          dwImpersonationLevel;
  COAUTHIDENTITY *pAuthIdentityData;
  DWORD          dwCapabilities;
} COAUTHINFO;

成员

dwAuthnSvc

要使用的身份验证服务。 有关值列表,请参阅 身份验证服务常量。 如果不需要身份验证,请使用RPC_C_AUTHN_NONE。 RPC_C_AUTHN_WINNT为默认值,也支持RPC_C_AUTHN_GSS_KERBEROS。

dwAuthzSvc

要使用的授权服务。 有关值列表,请参阅 授权常量。 若要使用 NT 身份验证服务,请指定RPC_C_AUTHZ_NONE。

pwszServerPrincName

要与身份验证服务一起使用的服务器主体名称。 如果使用 RPC_C_AUTHN_WINNT,则主体名称必须 NULL

dwAuthnLevel

要使用的身份验证级别。 有关值列表,请参阅 身份验证级别常量

从 Windows Server 2003 起,远程激活使用 CoInitializeSecuritydwAuthnLevel 参数中指定的默认身份验证级别。 在早期版本的 Windows 中,除非显式指定了另一个级别,否则始终RPC_C_AUTHN_LEVEL_CONNECT用于安全级别。

dwImpersonationLevel

要使用的模拟级别。 有关值列表,请参阅 模拟级别常量。 此值必须RPC_C_IMP_LEVEL_IMPERSONATE或更高版本。

pAuthIdentityData

指向建立非默认客户端标识的 COAUTHIDENTITY 结构的指针。 如果此参数 NULL,则使用客户端的实际标识。 结构成员的值特定于身份验证服务。 如果 dwAuthnSvc 未指定 NTLMSSP 或 Kerberos 网络身份验证协议用作授权服务,则必须 NULL

dwCapabilities

指示此代理的其他功能。 目前,此成员必须EOAC_NONE(0x0)或RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH(0x1)。 如果需要 Kerberos,请使用RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH。

言论

如果 COSERVERINFO 中的 pAuthInfo 设置为 NULL,Snego 将用于协商将在客户端和服务器之间运行的身份验证服务。 但是,可以为 pAuthInfo 指定非NULLCOAUTHINFO 结构以满足以下任一需求:

  • 为计算机远程激活指定不同的客户端标识。 指定的标识将用于服务器上的启动权限检查,而不是真正的客户端标识。
  • 若要指定 Kerberos 而不是 NTLMSSP,则用于计算机远程激活。 可以或未指定非默认客户端标识。
  • 请求不安全的激活。
  • 指定专有身份验证服务。
指定 COAUTHINFO 结构允许 DCOM 激活与 NTLMSSP 以外的安全提供程序正常工作。 还可以指定远程激活期间使用的其他安全信息,以便与 DCOM 的备用实现互操作性。

如果 dwAuthzSvcpwszServerPrincNamedwImpersonationLeveldwCapabilities 不正确的值,并调用 CoGetClassObjectCoCreateInstanceEx,这些函数不会返回E_INVALIDARG或类似的错误。 使用默认值而不是不正确的值。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [桌面应用 |UWP 应用]
支持的最低服务器 Windows 2000 Server [桌面应用 |UWP 应用]
标头 wtypesbase.h (包括 WTypes.h)

另请参阅

COSERVERINFO