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)
希望有所帮助!
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
有关此修复的潜在后果/副作用的任何想法?
我也很失望这个问题还没有在一年后修复.
谢谢.
| 归档时间: |
|
| 查看次数: |
17291 次 |
| 最近记录: |