在ASP.NET MVC 3 Beta中专门使用Windows身份验证的问题

Jef*_*ser 27 visual-studio-2010 asp.net-mvc-3

我正在ASP.NET MVC 3 Beta中创建一个Intranet站点,并且只想使用Windows身份验证.另外,我想在VS2010中使用Visual Studio开发服务器.

我修改了默认的web.config文件以删除对表单身份验证的所有引用并切换到:

<authentication mode="Windows"  />
<authorization>
  <deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)

但是,当我启动我的网站并获得默认页面时,我得到了这样的答复:

HTTP/1.1 302 Found
Server: ASP.NET Development Server/10.0.0.0
Date: Tue, 02 Nov 2010 14:05:19 GMT
X-AspNet-Version: 4.0.30319
Location: /Account/Login?ReturnUrl=%2f
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 145
Connection: Close
Run Code Online (Sandbox Code Playgroud)

这会在我的浏览器中显示此消息:

'/'应用程序中的服务器错误.

无法找到该资源.

说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用.请查看以下网址,确保拼写正确.

请求的URL:/帐户/登录

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.1版本:4.0.30319.1

如果我在"使用Visual Studio开发服务器"下的项目属性中选择"NTLM身份验证",那么我在connect上正确获得此回复:

HTTP/1.1 401 Unauthorized Server
ASP.NET Development Server/10.0.0.0
Date: Tue, 02 Nov 2010 14:07:37 GMT
Content-Length: 1211 
WWW-Authenticate: NTLM
Run Code Online (Sandbox Code Playgroud)

但是当我进行身份验证时,我得到了302

我认为这只是清除一些默认值但不确定("/ Account/Login"不会出现在我的web.config文件中的任何地方).如果我删除"拒绝"部分,那么事情就可以正常工作,除非我没有得到经过身份验证的校长并且有效地保持匿名.

我相信这曾经在ASP.NET MVC 2和VS2008中工作,只需将身份验证模式更改为Windows,但它似乎不再以这种方式工作.

我知道我可能遗漏了一些基本的东西.谢谢!

注意:此问题类似于" 限制匿名访问ASP.Net MVC站点的问题"问题,但不同之处在于我想专门使用Windows身份验证.

Kie*_*ron 38

我有完全相同的问题.事实证明,MVC 3发生了变化(相当好的隐藏),默认情况下会自动启用Forms身份验证,为了禁用它,将以下行添加到您的根Web.config文件中,在appSettings键下...

<add key="autoFormsAuthentication" value="false" />
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

  • 根据Jeff评论的文档 - 我还必须添加此密钥才能使其正常工作 - "<add key ="enableSimpleMembership"value ="false"/>` (8认同)
  • Phil Haack(@haacked)告诉我这个问题在发行说明中并将被修复:http://www.asp.net/learn/whitepapers/mvc3-release-notes (2认同)

Jar*_*nal 15

仅供参考,如果这有助于其他人:在我的情况下,我只需要添加 <add key="enableSimpleMembership" value="false">来修复问题而<add key="autoFormsAuthentication" value="false" />不是必需的.我还发现这篇博文非常有用,作为解释http://www.codeproject.com/Articles/292149/The-resource-cannot-be-found-Account-Login?msg=4092212#xx4092212xx

有关此修复的潜在后果/副作用的任何想法?

我也很失望这个问题还没有在一年后修复.

谢谢.

  • 我也很失望.正如你所提到的,我只需要添加`<add key ="enableSimpleMembership"value ="false">`.+1提供链接:) (2认同)