【发布时间】:2011-05-03 23:21:25
【问题描述】:
我在 ASP.NET MVC 3 Beta 中创建一个 Intranet 站点,并希望专门使用 Windows 身份验证。另外,我想在VS2010中使用Visual Studio Development Server。
我修改了默认的 web.config 文件以删除对表单身份验证的所有引用并切换到此:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
但是,当我启动我的网站并获得默认页面时,我会收到以下回复:
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
这会在我的浏览器中显示此消息:
“/”应用程序中的服务器错误。
找不到资源。
描述:HTTP 404。资源 您正在寻找(或其中之一 依赖项)可能已被删除, 它的名字被改变了,或者是 暂时不可用。请 查看以下 URL 并确保 它拼写正确。
请求的 URL:/Account/Login
版本信息:Microsoft .NET 框架版本:4.0.30319; ASP.NET 版本:4.0.30319.1 版本:4.0.30319.1
如果我在“使用 Visual Studio 开发服务器”下的项目属性中选择“NTLM 身份验证”,那么我在连接时会正确收到此回复:
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
但是当我进行身份验证时,我得到了 302
我认为这只是清除一些默认值的问题,但不确定(“/Account/Login”不会出现在我的 web.config 文件中的任何位置)。如果我删除“拒绝”部分,那么一切正常,只是我没有获得经过身份验证的委托人并且有效地保持匿名。
我相信这曾经在 ASP.NET MVC 2 和 VS2008 中工作,只需将身份验证模式更改为 Windows,但它似乎不再那样工作了。
我知道我可能缺少一些基本的东西。谢谢!
注意:本题与“Problem restricting anonymous access to an ASP.Net MVC Site”题类似,不同之处在于我想独占使用Windows身份验证。
【问题讨论】:
-
在 MVC3 RTM 中,这似乎有帮助
<add key="enableSimpleMembership" value="false"/>source
标签: visual-studio-2010 asp.net-mvc-3