MessageSecurityOverHttp.NegotiateServiceCredential Eigenschaft

Definition

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Dienstanmeldeinformationen für den Client außerhalb des Bandes bereitgestellt werden oder über einen Prozess der Aushandlung vom Dienst abgerufen werden.

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

Eigenschaftswert

truewenn Dienstanmeldeinformationen über einen Prozess der Aushandlung abgerufen werden; andernfalls . false Der Standardwert lautet true.

Beispiele

Der folgende Code zeigt, wie Auf diese Eigenschaft zugegriffen und festgelegt wird.

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)

Hinweise

Wenn Sie diese Eigenschaft auf festlegen true, müssen WS-Trust und WS-SecureConversation vom Client und dem Dienst unterstützt werden. Wenn Sie diese Eigenschaft festlegen, false muss WS-Trust oder WS-SecureConversation nicht unterstützt werden.

Legen Sie für Anmeldeinformationstypen für anonyme, Benutzername oder Zertifikat-Clientanmeldeinformationen fest false , dass das Dienstzertifikat für den Client außerhalb des Bandes verfügbar sein muss und dass der Client das zu verwendende Zertifikat des Diensts angeben muss.

Bei Windows Anmeldeinformationen bewirkt das Festlegen dieser Eigenschaft auf false eine Authentifizierung basierend auf KerberosToken. Dazu muss der Client und der Dienst Teil einer Kerberos-Domäne sein. Dieser Modus ist mit SOAP-Stapeln kompatibel, die das Kerberos-Tokenprofil von OASIS implementieren. Durch Festlegen dieser Eigenschaft wird true eine SOAP-Aushandlung verursacht, die SPNego über SOAP-Nachrichten übergibt. Dieser Modus ist nicht interoperabel.

Diese Eigenschaft gibt an, ob die Dienstanmeldeinformationen automatisch zwischen dem Client und dem Dienst ausgehandelt werden. Wenn diese Eigenschaft lautet true, tritt eine solche Aushandlung auf. Wenn diese Eigenschaft lautet false, müssen die Dienstanmeldeinformationen auf dem Client angegeben werden, bevor die Kommunikation mit dem Dienst erfolgen kann.

Wenn diese Eigenschaft auf false" festgelegt ist und die Bindung für die Verwendung von Windows als Clientanmeldeinformationstyp konfiguriert ist, muss das Dienstkonto einem Dienstprinzipalnamen (Service Principal Name, SPN) zugeordnet sein. Führen Sie dazu den Dienst unter dem NETZWERKDIENSTkonto oder dem LOKALEN SYSTEMkonto aus. Verwenden Sie andernfalls das Tool SetSpn.exe, um einen Dienstprinzipalnamen für das Dienstkonto zu erstellen. Der Client muss in beiden Fällen entweder den korrekten servicePrincipalName-Element oder den -Konstruktor verwenden. Weitere Informationen finden Sie unter Dienstidentität und -authentifizierung.

Gilt für: