2009-04-17 10 views
8

Może ktoś dać wyraźne wyjaśnienie różnicy między używaniemRóżnica między ClientCredentialType = Windows i = NTLM

  • clientCredentialType=Windows i
  • clientCredentialType=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.

Odpowiedz

1

clientCredentialType = System Windows używa wbudowanego uwierzytelniania systemu Windows, które może być za pośrednictwem usługi Active Directory i NTLM.

Oczywiście typ NTLM będzie używać NTLM tylko do uwierzytelniania.

Jestem pewien, że widziałem go już, ale tutaj jest link do bezpieczeństwa WCF: http://msdn2.microsoft.com/en-us/library/ms734769.aspx

trochę więcej szczegółów na temat konfiguracji pomoże. Czy serwery IIS i Cassini działają na tym samym polu? Jeśli nie, masz te same konta na każdym polu? IIS6 domyślnie obsługuje NTLM, więc nie powinieneś mieć problemu z jego uruchomieniem.

+0

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