如何为Asp Web应用程序启用Windows身份验证?

时间:2018-02-12 15:58:57

标签: asp.net visual-studio authentication web-applications

Windows身份验证看起来非常简单,但我仍然遇到问题。所以我决定使用Windows身份验证模板创建一个全新的Asp Web应用程序项目。当然,这是有效的。在设计器中,<asp:LoginName runat="server" />可以使用,代码隐藏User.Identity.Name可以使用。

我能找到的唯一设置是web.config:<authentication mode="Windows"/>

回到我自己的网络应用程序项目,我确认我有相同的web.config设置。但是,asp.LoginName标记和User.Identity属性具有空字符串,即没有用户名。此外,使用<deny users="?"/>时 该页面返回401.2拒绝访问响应。

当我在同一台开发机器上测试两个项目时,在VS2015中,问题都不能出现在IIS Express或VS2015的设置中。同样使用相同的Firefox浏览器,虽然我也尝试过IE。

我忽略了VS2015中的项目设置吗?

更新

我通过将所有项目源文件复制到全新的Asp Web应用程序项目来解决此问题。实际上,我正在将Web站点项目转换为Web应用程序项目。我仍然不知道为什么我无法通过配置来使用Windows身份验证,但至少我可以继续进一步开发。

但是,我仍然希望得到答案。 。 。 : - )

2 个答案:

答案 0 :(得分:0)

在您的Web.config上,您必须添加:

<authentication mode="Windows" />

您的服务器必须是AD的成员。

检查: https://support.microsoft.com/en-us/help/323176/how-to-implement-windows-authentication-and-authorization-in-asp-net

答案 1 :(得分:0)

您可以在web.config中编写您想要的任何内容,但如果[solution]/.vs/config/applicationhost.config中未启用所需的身份验证模式,则无效。由于前导点使其成为隐藏路径,因此很难找到此配置。不知道这是一个错误还是一个功能......

另请参阅关于此问题的另一个测试案例的另一个问题:https://stackoverflow.com/a/48806942/1845672