Qualcuno può dare una chiara spiegazione della differenza tra l'utilizzo diDifferenza tra clientCredentialType = Windows e = Ntlm
clientCredentialType=Windows
, eclientCredentialType=Ntlm
in un Web.config sul lato server quando ospitare un servizio WCF?
Ho un servizio SOAP 1.1 (basicHttpBinding
) per l'interoperabilità con i clienti esistenti. Utilizza i ruoli ASP.NET quindi richiede l'autenticazione dei client.
Quando sto usando il server VS2005 (Cassini) per ospitare il servizio, devo specificare ClientCredentialType=Ntlm
come sopra, e selezionare la casella di autenticazioneNtlm nelle proprietà del progetto in VS2005. ClientCredentialType=Windows
non funziona - i clienti ottengono un:
401 errore Unauthorized
Tuttavia quando sono in esecuzione in IIS, è il contrario: ClientCredentialType=Windows
opere, e ClientCredentialType=Ntlm
fallisce.
Qualcuno può spiegare questo, e preferibilmente suggerire un modo in cui posso avere lo stesso file web.config per eseguire il servizio in Cassini e IIS?
Aggiornamento
ho NET 3.5 SP1 sulla mia macchina dev, che è XP SP2 in esecuzione in un dominio. Pertanto, Cassini viene eseguito con un account di dominio e IIS 5.1 con un account locale.
Mi chiedo se potrebbe essere correlato al cambiamento di rottura in .NET 3.5SP1 descritto in questi articoli.
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
La situazione sembra simile a quella clientCredentialType=Windows
fallisce quando il server è in esecuzione con un account di dominio (che è la mia situazione con Cassini - in esecuzione come il mio normale account utente di dominio), e funziona durante l'esecuzione sotto un account locale (che è la mia situazione con IIS).
Il problema è che le correzioni suggerite richiedono modifiche a un file di configurazione del client WCF, ma nel mio caso sto utilizzando SOAP 1.1 (basicHttpBinding
) con client non WCF.
Grazie. Ho letto questo e ho un'idea superficiale della differenza tra NTLM e Windows. Ma non perché Windows non funziona con Cassini. – Joe