MessageSecurityOverHttp.NegotiateServiceCredential 属性

定义

获取或设置一个值,该值指示是在带外客户端提供服务凭据,还是通过协商过程从服务向客户端获取服务凭据。

public:
 property bool NegotiateServiceCredential { bool get(); void set(bool value); };
public bool NegotiateServiceCredential { get; set; }
member this.NegotiateServiceCredential : bool with get, set
Public Property NegotiateServiceCredential As Boolean

属性值

Boolean

如果通过协商过程获取服务凭据,则为 true;否则为 false。 默认值为 true

示例

下面的代码演示如何访问和设置此属性。

WSHttpBinding binding = new WSHttpBinding();
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType =
    MessageCredentialType.UserName;
binding.Security.Message.NegotiateServiceCredential = false;

CalculatorClient CalculatorClient = new CalculatorClient("myBinding");
CalculatorClient.ClientCredentials.ServiceCertificate.
    SetDefaultCertificate("Al", StoreLocation.CurrentUser, StoreName.My);
Dim binding As New WSHttpBinding()
binding.Security.Mode = SecurityMode.Message
binding.Security.Message.ClientCredentialType = _
MessageCredentialType.UserName
binding.Security.Message.NegotiateServiceCredential = False

Dim CalculatorClient As New CalculatorClient("myBinding")
CalculatorClient.ClientCredentials.ServiceCertificate. _
    SetDefaultCertificate("Al", StoreLocation.CurrentUser, StoreName.My)

注解

将属性设置为 true 需要客户端和服务支持 WS-Trust 和 WS-SecureConversation。 将属性设置为 false 时不需要 WS-Trust 或 WS-SecureConversation 受支持。

对于 Anonymous、Username 或 Certificate 客户端凭据类型,将此属性设置为 false 意味着服务证书必须可用于带外客户端,并且客户端必须指定要使用的服务证书。

对于 Windows 凭据,将此属性设置为 false 将导致基于 KerberosToken 的身份验证。 这要求客户端和服务都是 Kerberos 域的一部分。 此模式可与实现 OASIS Kerberos 令牌配置文件的 SOAP 堆栈交互操作。 将此属性为 true 会引起通过 SOAP 消息进行 SPNego 交换的 SOAP 协商。 此模式不可互操作。

此属性指示是否在客户端和服务之间自动协商服务凭据。 如果此属性为 true,则会进行此类协商。 如果此属性为 false,则在与服务进行通信之前,必须在客户端指定服务凭据。

如果将此属性设置为 false,并且将绑定配置为使用 Windows 作为客户端凭据类型,则必须将服务帐户与服务主体名称 (SPN) 相关联。 为此,请在 NETWORK SERVICE 帐户或 LOCAL SYSTEM 帐户下运行服务。 也可以使用 SetSpn.exe 工具为服务帐户创建一个 SPN。 不论何种情况,客户端都必须在 <servicePrincipalName> 元素中使用正确的 SPN,或者通过使用 EndpointAddress 构造函数来应用正确的 SPN。 有关详细信息,请参阅服务标识和身份验证

适用于