2013-07-10 22 views
2

當我使用fiddler診斷我的mvc web應用程序時,我注意到有多個調用返回401未授權錯誤但繼續執行的資源。MVC應用程序多次調用資源

Result Protocol URL      Body Caching Content-Type 
1 401 HTTP  /administration/index 6,334 private text/html; charset=utf-8 
2 401 HTTP  /administration/index 341   text/html; charset=us-ascii 
3 200 HTTP  /administration/index 511 private text/html; charset=utf-8 
... images and stylesheets also return the same sequence 
    401 HTTP  /administration/logo.png 6,322   text/html; charset=utf-8 
    401 HTTP  /administration/logo.png 341   text/html; charset=us-ascii 
    200 HTTP  /administration/logo.png 3,124   image/png 

這種情況發生在我訪問的頁面和圖像上。

該網站在其ApplicationPoolIdentity自己的應用程序池下運行,並在網站上有Windows身份驗證。

它看起來像資源被稱爲多次不同的字符集?

任何人都可以建議什麼可能導致這種情況發生?

回答

2

當我使用Fiddler診斷我的MVC Web應用程序我注意到 有返回401 未經授權的錯誤,但然後進行資源的多個電話。

如果您正在使用Integrated Windows Authentication,這是完全正常的。 Windows身份驗證(又名a)NTLM是一種質詢響應身份驗證方案,客戶端向受保護資源發送請求,並且服務器返回401和質詢。然後,客戶端使用這個挑戰來生成一個授權標頭,證明用戶是他沒有發送密碼的用戶。域控制器被雙方用作中介。

如果你看一下響應頭,你應該看到沿東西線:

HTTP/1.1 401 Access Denied 
WWW-Authenticate: Negotiate 
WWW-Authenticate: NTLM 

然後客戶端試圖驗證第二次:

GET/HTTP/1.1 
Host: host 
Authorization: NTLM TlRMTVNTUAABAAAAB4IAoAAAAAAAAAAAAAAAAAAAAAB= 

現在服務器發送一個挑戰到客戶端:

HTTP/1.1 401 Access Denied 
WWW-Authenticate: NTLM TlRMTVNTUAACAAAADAAMADAAAAAFgoGgCY6qiih5j bAAAAAAAAAAAH4AfgA8AAAAUABPAFIAVAA4ADAAAgAMAFAATwBSAFQA OAAwAAEACgBKAEwASQBNAEEABAAkAHAAbwByAHQAOAAwAHMAbwBmA HQAdwBhAHIAZQAuAGMAbwBtAAMAMABqAGwAaQBtAGEALgBwAG8AcgB0 ADgAMABzAG8AZgB0AHcAYQByAGUALgBjAG8AbQAAAAAA 

最後客戶端迴應這個挑戰lenge:

GET/HTTP/1.1 
Host: host 
Authorization: NTLM TlRMTVNTUAADAAAAGAAYAGIAAAAYABgAegAAAAwADAB AAAAACgAKAEwAAAAMAAwAVgAAAAAAAACSAAAABYKAoFAATwBSAFQAO AAwAGoAbABpAG0AYQBFAFIATgBFAFMAVACZTd1Br98zFkTowoPysC5ysMaXqb qycwRldOKyZJbCIZLxCfcZe3ZHiYQmG97jr89= 
相關問題