Freigeben über


MessageSecurityOverHttp.NegotiateServiceCredential Eigenschaft

Definition

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Dienstanmeldeinformationen auf dem Client außerhalb des Bereichs bereitgestellt oder vom Dienst über einen Aushandlungsvorgang 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

Boolean

true, wenn die Dienstanmeldeinformationen über einen Aushandlungsvorgang abgerufen werden, andernfalls false. Der Standardwert ist true.

Beispiele

Der folgende Code zeigt, wie diese Eigenschaft aufgerufen 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

Für das Festlegen dieser Eigenschaft auf true müssen WS-Vertrauenswürdigkeit und WS-SecureConversation vom Client und vom Dienst unterstützt werden. Für das Festlegen dieser Eigenschaft auf false muss keine WS-Vertrauenswürdigkeit oder WS-SecureConversation unterstützt werden.

Für Clientanmeldeinformationen des Typs Anonym, Benutzername oder Zertifikat impliziert das Festlegen dieser Eigenschaft auf false, dass das Dienstzertifikat beim Client außerhalb des Bereichs verfügbar sein und der Client das zu verwendende Dienstzertifikat angeben muss.

Wenn diese Eigenschaft durch Windows-Anmeldeinformationen auf false festgelegt wird, wird eine Authentifizierung ausgelöst, die auf KerberosToken basiert. Dies erfordert, dass der Client und der Dienst ein Teil einer Kerberos-Domäne sind. Dieser Modus ist mit SOAP-Stapeln interoperabel, die Kerberos-Tokenprofile von OASIS implementieren. Durch das Festlegen dieser Eigenschaft auf true wird eine SOAP-Aushandlung verursacht, die den SPNego-Austausch über SOAP-Meldungen tunnelt. Dieser Modus ist nicht interoperabel.

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

Wenn diese Eigenschaft auf false festgelegt ist und die Bindung zum Verwenden von Windows als Clientanmeldeinformations-Typ konfiguriert ist, muss das Dienstkonto einem SPN (Service Principal Name) zugeordnet werden. Führen Sie zu diesem Zweck den Dienst unter dem Konto NETZWERKDIENST oder dem Konto LOKALES SYSTEM aus. Verwenden Sie andernfalls das Tool SetSpn.exe, um einen Dienstprinzipalnamen für das Dienstkonto zu erstellen. In beiden Fällen muss der Client den richtigen SPN im ServicePrincipalName-Element> oder mithilfe des< EndpointAddress Konstruktors verwenden. Weitere Informationen finden Sie unter Dienstidentität und Authentifizierung.

Gilt für