我正在 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 Framework 版本: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,但它似乎不再那样工作了。
我知道我可能缺少一些基本的东西。谢谢!
注意:这个问题类似于“限制匿名访问 ASP.Net MVC 站点的问题”问题,但不同之处在于我想专门使用 Windows 身份验证。