Może ktoś dać wyraźne wyjaśnienie różnicy między używaniemRóżnica między ClientCredentialType = Windows i = NTLM
clientCredentialType=Windows
iclientCredentialType=Ntlm
w Web.config po stronie serwera, gdy hosting usługi WCF?
Mam SOAP 1.1 (basicHttpBinding
) Usługi dla współdziałanie z istniejącymi klientami. Używa ról ASP.NET, więc wymaga uwierzytelnienia klientów.
Kiedy używam serwera VS2005 (Cassini) do obsługi tej usługi, trzeba określić ClientCredentialType=Ntlm
jak wyżej, i zaznacz pole uwierzytelniania NTLMwe właściwościach projektu w VS2005. ClientCredentialType=Windows
nie działa - klienci dostać:
401 Nieuprawnione błąd
Jednak kiedy biegnę pod IIS, to na odwrót: ClientCredentialType=Windows
prace i ClientCredentialType=Ntlm
zawiedzie.
Czy ktoś może to wyjaśnić i najlepiej zaproponować sposób, w jaki mogę mieć ten sam plik web.config, aby uruchomić usługę w Cassini i IIS?
Aktualizacja
Mam .NET 3.5 SP1 na moim komputerze dev, które jest XP SP2 działa w domenie. Dlatego Cassini działa pod kontem domeny i IIS 5.1 pod kontem lokalnym.
Zastanawiam się, czy może to być związane z przełomową zmianą w .NET 3.5SP1 opisaną w tych artykułach.
http://www.aspnetpro.com/newsletterarticle/2008/12/asp200812ab_l/asp200812ab_l.asp http://msmvps.com/blogs/alvin/archive/2008/11/14/net-3-5-sp1-breaking-change-to-wcf.aspx http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=354236
Sytuacja brzmi podobnie jak clientCredentialType=Windows
zawiedzie, gdy serwer jest uruchomiony w ramach konta domeny (co jest moja sytuacja z Cassini - działa jako mojego normalnego konta użytkownika domeny), a prace przy uruchamianiu pod kontem lokalnym (co jest moją sytuacją z IIS).
Problem polega na tym, że sugerowane poprawki wymagają zmian w pliku konfiguracyjnym klienta WCF - ale w moim przypadku używam SOAP 1.1 (basicHttpBinding
) z klientami nie używającymi WCF.
Dzięki. Przeczytałem to i mam powierzchowne wyobrażenie o różnicy między NTLM i Windows. Ale nie dlaczego Windows nie działa z Cassini. – Joe