当我在IIS上托管ASP.NET MVC项目时,Windows身份验证效果很好。但是,如果我从Visual Studio中运行它,则不会。
这是我的Web.config:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
我想念什么吗?
如果您托管在IIS Express中(可能应该这样做),请确保已在Web应用程序的属性中启用Windows身份验证。
如果使用Intranet应用程序模板在Visual Studio中创建新的ASP.NET MVC 4应用程序,则会在屏幕上看到以下自述文件。因此,继续尝试,阅读并遵循那里写的内容:
要将此模板用于Windows Azure身份验证,请参阅http://go.microsoft.com/fwlink/?LinkID=267940。
否则,要将此模板用于Windows身份验证,请参阅以下说明:
在IIS Express上托管:
- 在解决方案资源管理器中单击您的项目以选择该项目。
- 如果“属性”窗格未打开,则将其打开(F4)。
- 在项目的属性窗格中:a)将“匿名身份验证”设置为“禁用”。b)将“ Windows身份验证”设置为“启用”。
在IIS 7或更高版本上托管:
- 打开IIS管理器并导航到您的网站。
- 在功能视图中,双击身份验证。
- 在“身份验证”页面上,选择Windows身份验证。如果没有Windows身份验证,则需要确保Windows身份验证已安装在服务器上。
要在Windows上启用Windows身份验证:
a)在控制面板中,打开“程序和功能”。b)选择“打开或关闭Windows功能”。c)导航到Internet信息服务>万维网服务>安全性,并确保已选中Windows身份验证节点。
要在Windows Server上启用Windows身份验证:
a)在服务器管理器中,选择Web服务器(IIS),然后单击“添加角色服务”。b)导航到Web服务器>安全性,并确保已选中Windows身份验证节点。
- 在“操作”窗格中,单击“启用以使用Windows身份验证。”>
- 在“身份验证”页面上,选择匿名身份验证。
- 在“操作”窗格中,单击“禁用”以禁用匿名身份验证。
我无法完全使用@Darin Dimitrov解决方案(主要是因为我找不到Visual Studio中描述的IIS Express设置!)。