【问题标题】:How to enable Windows Authentication for Asp web app?如何为 Asp Web 应用启用 Windows 身份验证?
【发布时间】:2018-02-12 15:58:57
【问题描述】:

Windows 身份验证似乎超级简单,但我仍然遇到问题。因此,我决定使用 Windows 身份验证模板创建一个全新的 Asp Web 应用程序项目。当然,这行得通。在设计器中,<asp:LoginName runat="server" /> 有效,而在代码隐藏中 User.Identity.Name 有效。

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

回到我自己的 Web 应用项目,我确认我有相同的 web.config 设置。但是,asp.LoginName 标记和User.Identity 属性有一个空白字符串,即没有用户名。另外,当使用<deny users="?"/> 该页面返回 401.2 Access Denied 响应。

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

VS2015中是否有我忽略的项目设置?


更新:

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

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

【问题讨论】:

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


    【解决方案1】:

    您必须在 Web.config 上添加:

    <authentication mode="Windows" />
    

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

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

    【讨论】:

    • 我在 web.config 中有那行。我的开发电脑是域的成员。事实上,在我的开发电脑上,一个项目在 Windows 身份验证下运行良好,但另一个项目却没有,我找不到决定性的区别。
    • 你确定你的配置文件在正确的地方吗?应该是这样的:&lt;configuration&gt; &lt;system.web&gt; &lt;authentication mode="[Windows/Forms/Passport/None]"&gt; &lt;/authentication&gt; &lt;/system.web&gt; &lt;/configuration&gt; 还要检查:codeproject.com/Articles/94612/Windows-Authentication
    • 好的,谢谢。 VisualStudio 的智能感知器知道 web.config 的那个位置的关键字。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-12-12
      • 2018-06-03
      • 1970-01-01
      • 2023-03-23
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      相关资源
      最近更新 更多