2012-03-17 163 views
2

我有一個ASP.NET MVC Intranet站點使用Windows身份驗證(Kerberos)專門用於傳遞身份驗證。它設置爲使用使用網絡服務標識的應用程序池(v4 /集成)。該網站在另一臺機器(SAMBA NAS盒)上託管的網絡共享之上提供了一個漂亮的用戶界面。偶爾(通常當有人沒有訪問過該網站一段時間時),客戶端在MVC代碼嘗試獲取遠程UNC共享目錄信息(System.IO.Directory.GetLastWriteTime)時出現401授權錯誤。在IIS機器上的事件日誌,在此相同的點捕獲安全審計失敗的時間:ASP.NET MVC間歇性401授權錯誤

 
+ System 

    - Provider 

    [ Name] Microsoft-Windows-Security-Auditing 
    [ Guid] {54849625-5478-4994-a5ba-3e3b0328c30d} 

    EventID 4625 

    Version 0 

    Level 0 

    Task 12544 

    Opcode 0 

    Keywords 0x8010000000000000 

    - TimeCreated 

    [ SystemTime] 2012-03-17T00:43:50.522Z 

    EventRecordID 398873 

    Correlation 

    - Execution 

    [ ProcessID] 696 
    [ ThreadID] 792 

    Channel Security 

    Computer lvtloweb1.acme.com 

    Security 


- EventData 

    SubjectUserSid S-1-0-0 
    SubjectUserName - 
    SubjectDomainName - 
    SubjectLogonId 0x0 
    TargetUserSid S-1-0-0 
    TargetUserName 
    TargetDomainName 
    Status 0xc000006d 
    FailureReason %%2304 
    SubStatus 0xc0000133 
    LogonType 3 
    LogonProcessName Kerberos 
    AuthenticationPackageName Kerberos 
    WorkstationName - 
    TransmittedServices - 
    LmPackageName - 
    KeyLength 0 
    ProcessId 0x0 
    ProcessName - 
    IpAddress - 
    IpPort - 

奇怪的是,如果你坐下來,一遍又一遍刷新頁面,通常得到的過去的401錯誤大約一分鐘。任何人有任何想法如何解決這樣的問題?噢,IIS機器託管在虛擬機中。來賓操作系統是Windows Server 2008企業版6.0.6002 Service Pack 2的

+0

IIS是否正在進行實際身份驗證或您的MVC應用程序?在使用MADAM進行身份驗證時,我遇到了在IIS中選中「集成Windows身份驗證」的類似問題。 – 2012-04-07 03:25:05

+0

是,在IIS站點上啓用集成Windows身份驗證。什麼是MADAM? – 2012-04-07 04:07:59

+0

認證機制雜耍圖書館的排序:http://msdn.microsoft.com/en-us/library/aa479391.aspx#madam_topic5在我的情況下,我剛剛沒有完全按照配置說明:/ – 2012-04-07 04:24:48

回答

3

基思,

是它似乎發生後用戶最被閒置,我傾向於某種事件(即會話超時)可能會使您的服務器的憑據無效。由於您沒有提及任何網絡農場,因此我假設有一臺服務器。

我的一部分認爲你可能已經敲定了會話超時的角度。除非你感到安全,相信用戶會'自動認證',並且在中途運作不會導致它失敗。這就是說,我不確定我是否完全相信這種情況。爲了至少消除這種可能性,我會添加一個例程,在該操作開始之前記錄有關當前會話/憑據的信息。即使用戶「總是登錄」,假設他們在他們的計算機上,我已經看到了VPN,代理服務器,服務器雙跳,用於「可信區域」和「Intranet」設置的IE配置等奇怪問題。即使一臺計算機突然改變路由到服務器也可能導致問題。我不確定虛擬機上的網絡模擬是否會起作用,但是誰知道。

這是一篇關於IE的「入門」文章,它是複雜的身份驗證方法以及它作爲訪問Intranet MVC應用程序的客戶端應用程序扮演的角色。 (它支付對IE如何自動神奇地在Windows AD環境認證深挖。)

http://support.microsoft.com/kb/258063/en-us

這裏有一個相關的問題有人雙躍造成401S有因。我還包括一個關於調查這些類型問題的另一個很好的'起始頁'的鏈接。

http://social.msdn.microsoft.com/Forums/en/sqlreportingservices/thread/6d1604e5-e739-41e4-89a5-c6681bff2e61

http://blogs.technet.com/b/askds/archive/2008/06/13/understanding-kerberos-double-hop.aspx

很抱歉,如果上面的東西你已經知道或者我的反應的一般性質。如果沒有網絡訪問權限,或者無法將日誌記錄添加到代碼中,這很困難。我希望我已經指出你在正確的方向。

+0

這是很好的信息。感謝所有的指針! – 2012-04-12 02:43:59

+0

不客氣,如果你得到更多的信息沒有一些這些測試,我會好奇聽到更多的撥打故障排除方向。 – 2012-04-12 06:15:12