次の方法で共有


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

プロパティ値

サービス資格情報がネゴシエーションのプロセスによって取得される場合は 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 のサポートは要求されません。

クライアント資格情報の種類の匿名、Usename、または 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> 要素内で、または EndpointAddress コンストラクターを使用して、正しい SPN を使用する必要があります。 詳細については、「サービス ID と認証」を参照してください。

適用対象