我有一个现有的asp.net站点,我想修改它以使用Windows身份验证(它位于本地Intranet上。)
我修改了web.config文件以使用Windows Auth:
<configuration>
<system.web>
<authentication mode="Windows"/>
<authorization>
<deny users="?"/>
</authorization>
<compilation debug="true"/>
</system.web>
我得到的错误信息是:
401.2.: Unauthorized: Logon failed due to server configuration.
如果我删除:<deny users="?"/>
则会显示该页面。但是,此代码显示尽管User不为null,但用户未登录:
protected void Page_Load(object sender, EventArgs e)
{
var userName = HttpContext.Current.User.Identity.Name;
}
我尝试过:
在Visual Studio中,如果我创建一个新的MVC应用程序,并选择&#34; Windows身份验证&#34;它按预期工作,用户使用域名登录。
将项目简化为web.config和单个aspx页面仍然有效。但是当我尝试在现有项目中使用完全相同的web.config(或者一个新的空项目)时,我得到了同样的错误。
所以必须在某处设置其他设置,但我无法确定它是什么。
答案 0 :(得分:1)
我找到了这个here
的答案在Visual Studio中,在“解决方案资源管理器”中选择“项目”,然后按 F4 以查看项目属性。注意:这些属性位于侧窗口(通常),而不是主(中心)窗口。
组: 1)启用Windows身份验证和 2)禁用匿名身份验证。