對於IIS 8。5和MVC 4:
Windows身份驗證如何工作?
在此模式下,User.Identity
(如HttpContext.Current.User.Identity
)由基礎Web服務器填充。這可能是來自@R Kumar演示的鏈接中的IIS Express,或者是@Thomas Benz視頻中的完整IIS。
具體來說,User.Identity是一個WindowsIdentity對象。例如。下面投將工作:
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;
如何在web.config文件中正確地執行Windows身份驗證?
<system.web>
<authentication mode="Windows" />
...
如何測試,如果Windows身份驗證確實適合我的ASP.NET MVC 4網站?換句話說,我如何在本地IIS(版本8)的本地開發PC上以及使用IIS版本7的公司真實Web服務器上對其進行測試?
首先,更改ASP.NET授權以排除當前用戶。例如。
<system.web>
<authentication mode="Windows" />
<authorization>
<allow users="yourdomain\someotheruser" />
<deny users="*" />
</authorization>
其次,啓用Windows身份驗證使用IIS管理您的網站。它在'認證'功能下。 和禁用匿名身份驗證。
請注意,以前的解釋會建議您在網站的web.config元素下進行更改。但是,由於安全原因,最近的IIS實現阻止了此操作
三,將瀏覽器指向網頁。瀏覽器應該要求您提供憑據,因爲當前用戶不允許訪問該網站。提供已授權的網站,並且您的MVC代碼應該運行。
四,檢查用戶身份。例如。
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;
這不應該與在Web窗體應用程序中測試它不同。 – Jacob
@jacob,謝謝你的回覆。你能給我更多的細節嗎? –
如果您使用IIS Express在本地運行,您可能還需要查看該帖子。 http://stackoverflow.com/questions/4762538/iis-express-windows-authentication – thinklarge