2014-03-28 17 views
0

將此作爲一個問題編寫並自行回答,因爲我遵循兩個步驟來解決無法一起使用的問題。使用VS. 2012和更高版本的ASP.Net MVC 4進行Windows身份驗證

使用的Visual Studio 2012

默認的web.config條目<authentication> [使用Razor視圖互聯網應用]開發在ASP.Net MVC 4應用程序如下:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" timeout="2880" /> 
</authentication> 

我需要應用程序的Windows身份驗證。因此,改變了模式到Windows

<authentication mode="Windows" /> 

通過以上的設置,HttpContext.User.Identity.IsAuthenticatedfalseHttpContext.User.Identity.Name爲空字符串。

+0

OK和你建立NTLM身份驗證的Web服務器? –

+0

@DavidHirst:已經發布了作爲答案的步驟,使其在本地運行。未在網絡服務器上設置NTLM身份驗證。需要執行以下過程才能使應用程序在本地運行在調試模式下。 –

回答

5
Select the web project and press F4. 

做以下修改:

Anonymous Authentication : Disabled, 
Windows Authentication : Enabled . 

如果應用程序試圖與上述變化運行,你會得到HTTP 404錯誤,應用程序將被重定向到域名/ login.aspx的RETURNURL? =%2F。

除上述更改外,還有兩個密鑰將添加到web.config文件的<appSettings>部分中。

<add key="autoFormsAuthentication" value="false" /> 
<add key="enablesimplemembership" value="false"/> 

現在,如果您運行該應用程序,您將是一個經過身份驗證的用戶,並且也可以獲取該名稱。

HttpContext.User.Identity.IsAuthenticated will be true 

HttpContext.User.Identity.Name will have the user name. 
相關問題