2013-04-09 95 views
0

我們使用僅啓用了Windows身份驗證的IIS 7.5。提供商是ntlm和negogiate(因爲我們希望它可以通過互聯網訪問)。IIS窗口身份驗證(NTLM)

客戶端是silverlight調用wcf服務。即使我們建立了會話,客戶端也會使用某個身份驗證令牌發送協商和服務器返回401。這發生intermettinetly,與許多成功的電話(混合失敗的電話)

許多調用工作正常,只是發送sessionid和everthing工作正常。

在拉琴,我們看到下面

客戶端發送

授權:協商TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw == ASP.NET_SessionId = 0ix0fqf02j1imrpfc4awit3w

服務器發送

WWW身份驗證:協商TlRMTVNTUAACAAAACgAKADgAAAAVgonitqRU/FVLp9EAAAAAAAAAAI4AjgBCAAAABgGxHQAAAA9BAEQATABBAEIAAgAKAEEARABMAEEAQgABAA4AQwBJAFIAVAAtAEQAMwAEABYAYQBkAGwAYQBiAC4AbAB vAGMAYQBsAAMAJgBDAEkAUgBUAC0ARAAzAC4AYQBkAGwAYQBiAC4AbABvAGMAYQBsAAUAFgBhAGQAbABhAGIALgBsAG8AYwBhAGwABwAIAMsTFgtFNc4BAAAAAA

回答

0

我還不能肯定我理解你的問題,但我猜你要解決的間歇性故障NTLM?

您描述的標題是挑戰響應協議NTLM的一部分。這裏有一個更完整的例子:

Client: Get/HTTP/1.1 

Server: HTTP/1.1 401 Unauthorized 
     WWW-Authenticate: Negotiate 
     WWW-Authenticate: NTLM 

Client: Get/HTTP/1.1 
     Authorization: Negotiate ###################### (encrypted Negotiate) 

Server: HTTP/1.1 401 Unauthorized 
     WWW-Authenticate: Negotiate ###################### (encrypted Challenge) 

Client: Get/HTTP/1.1 
     WWW-Authenticate: Negotiate ###################### (encrypted Response) 

Server: HTTP/1.1 200 OK 

在公共互聯網上使用這種認證方法可能是一個壞主意;它旨在用於客戶端和服務器都可以訪問公共Windows Active Directory域的專用Intranet中使用。

我懷疑您的問題可能在「You are intermittently prompted for credentials or experience time-outs when you connect to Authenticated Services」知識庫文章中得到解決。

下面是其他一些相關的參考資料: