Kann jemand eine klare Erklärung für den Unterschied zwischen der Verwendung
geben?clientCredentialType=Windows
und clientCredentialType=Ntlm
in einer serverseitigen Web.config beim Hosten eines WCF-Dienstes?
Ich habe einen SOAP 1.1 ( basicHttpBinding
) Service für Interop mit bestehenden Clients. Es verwendet ASP.NET-Rollen, so dass Clients authentifiziert werden müssen.
Wenn ich den Server VS2005 (Cassini) als Host für den Dienst verwende, muss ich ClientCredentialType=Ntlm
wie oben angeben und das Kontrollkästchen Ntlm in den Projekteigenschaften in VS2005 aktivieren. ClientCredentialType=Windows
funktioniert nicht - Clients erhalten a:
401 Nicht autorisierter Fehler
Wenn ich unter IIS arbeite, ist es umgekehrt: ClientCredentialType=Windows
funktioniert und ClientCredentialType=Ntlm
schlägt fehl.
Kann jemand das erklären und vorzugsweise vorschlagen, dass ich dieselbe web.config-Datei haben kann, um den Dienst in Cassini und IIS auszuführen?
Aktualisieren
Ich habe .NET 3.5 SP1 auf meinem Dev-Rechner, also XP SP2, der in einer Domäne läuft. Cassini läuft daher unter einem Domänenkonto und IIS 5.1 unter einem lokalen Konto.
Ich frage mich, ob es mit der in .NET 3.5SP1 beschriebenen brechenden Änderung zusammenhängen könnte, die in diesen Artikeln beschrieben wird.
Die Situation klingt ähnlich, wenn clientCredentialType=Windows
fehlschlägt, wenn der Server unter einem Domänenkonto ausgeführt wird (was meiner Situation entspricht, in der Cassini als normales Domänenbenutzerkonto ausgeführt wird) und wenn er unter einem lokalen Konto ausgeführt wird Situation mit IIS).
Das Problem ist, dass die vorgeschlagenen Fixes Änderungen an einer WCF-Client-Konfigurationsdatei erfordern - aber in meinem Fall verwende ich SOAP 1.1 ( basicHttpBinding
) mit Nicht-WCF-Clients.
clientCredentialType = Windows verwendet die integrierte Windows-Authentifizierung, die über Active Directory und NTLM erfolgen kann.
Offensichtlich verwendet der NTLM-Typ nur NTLM zur Authentifizierung.
Ich bin sicher, Sie haben es bereits gesehen, aber hier ist ein Link zur WCF-Sicherheit: Ссылка
Einige weitere Details zu Ihrer Einrichtung würden helfen. Funktionieren die IIS- und Cassini-Server auf derselben Box? Wenn nicht, haben Sie die gleichen Accounts für jede Box? IIS6 unterstützt standardmäßig NTLM, daher sollte es kein Problem sein, es zum Laufen zu bringen.
Tags und Links wcf visual-studio-2005 cassini