我試圖在我的.NET 4.0 MVC3 Web應用程序中設置Windows身份驗證,因此公司內部網用戶可以登錄而不會出現提示。Windows身份驗證不起作用
在web.config中,我有:
<authentication mode="Windows" />
<authorization>
<deny users = "?" />
</authorization>
在整個Web應用程序IIS我禁用匿名訪問,並且只留下Windows身份驗證檢查。我在Windows 2003上使用IIS 6.0.
現在,當我從USER \ COMPUTER訪問站點時,我沒有被提示登錄,但作爲錯誤的用戶(不是我自己,而是服務器的管理員帳戶該Web應用程序正在運行)。
當我從USER \ SOMESERVER訪問站點時,我按照預期登錄爲USERS。所有其他人試圖從他們的計算機訪問我的應用程序會得到提示輸入用戶名和密碼(但他們可以在提供有效憑證時登錄)。這尤其奇怪,因爲它們都在IE設置中啓用了集成的Windows身份驗證,並且* .domain.intra被添加到Intranet站點。
有沒有人有想法發生了什麼?我怎樣才能使它工作,所以用戶以自己的身份登錄而不被提示?
編輯:Web應用程序池運行爲NETWORK SERVICE,所以我不明白爲什麼我在我記錄爲錯誤的用戶從我的機器...
EDIT2:因爲我使用NETWORK SERVICE作爲應用程序池的標識,我遵循了以下解決方法步驟:http://support.microsoft.com/kb/871179。但它仍然無法正常工作......
所有的用戶和計算機屬於同一個域
EDIT3:我發現這一點:http://forums.iis.net/t/1167087.aspx。他們描述的問題完全一樣。該解決方案也有效。唯一仍然存在的問題是,從我的開發機器中,我仍然自動以錯誤的用戶身份登錄。幸運的是,所有客戶機都以當前用戶身份登錄。
這聽起來像你在IIS中模擬安裝。 – 2012-02-28 14:54:52
你是如何得到它登錄的用戶名?你有沒有在你的代碼中的任何地方引用錯誤的用戶?當其他用戶得到提示輸入用戶名和密碼時,他們是否可以登錄或拒絕他們的授權?顯而易見的問題是,所有用戶都在同一個域名上? ;-) – Chris 2012-02-28 14:56:16
他們可以自己登錄,然後在用戶部分中顯示正確的用戶名。我沒有任何對錯誤用戶的引用,也沒有在web.config中配置模擬。我從'User.Identity.Name'獲取用戶名 – 2012-02-28 15:04:39