问题描述
我有一个应该使用Windows身份验证的ASP.NET站点。我修改了web.config使其包含以下代码:
<system.web>
<authentication mode="Windows" />
<authorization>
<allow roles="domain\application users"/>
<deny roles="domain\domain users" />
</authorization>
</system.web>
我已经能够获得完全相同的代码来在另一个ASP.NET应用程序中工作。但是,此应用程序甚至不提示输入凭据,而是允许所有用户在使用IIS Express的Visual Studio中进行调试。就像Windows身份验证实际上没有注册。
我在后面的代码中使用了HttpContext.Current.User.Identity.IsAuthenticated
以确保我的假设正确,并且确实返回false。
我不确定Windows身份验证是否适用于发行版,因为我不想在它无法正常工作时进行部署。
我在这里可能想念什么?我的代码是否有问题,或者我需要做一些事情以正确配置IIS?
解决方法
我最终偶然发现了另一个问题(Windows Authentication not working in existing asp.net site),该问题对我有帮助-我正确配置了网站,但是在创建项目后决定添加Windows身份验证,这意味着在解决方案中未正确配置它属性本身。在开发服务器属性中将Windows身份验证更改为已启用,将匿名身份验证更改为已禁用,解决了我的问题。