【问题标题】:Disabling Anonymous Authentication in IIS Enables & Locks it in VS在 IIS 中禁用匿名身份验证会在 VS 中启用并锁定它
【发布时间】:2021-09-24 19:34:01
【问题描述】:

我正在尝试设置一个 .net 框架站点以使用 Windows 身份验证,但无法让登录提示消失。罪魁祸首似乎是在 IIS 中禁用匿名身份验证将以下项目添加到我的 web.config 中,从而在 VS 中启用匿名身份验证设置并将其锁定。

<system.webServer>
    <security>
        <authentication>
            <anonymousAuthentication enabled="false" />
        </authentication>
    </security>
</system.webServer> 

我已经从配置中手动添加和删除了该行,并且每次添加该行时,它都有相同的行为; VS 中的匿名身份验证已启用并锁定。

在任何其他使用 Windows 身份验证的站点上,我都没有发生这种行为。我今天早上创建了项目,所以不存在 .net 版本更改问题。

如果重要的话,我的项目是在 .NET Framework 4.7.1 上设置的,并且我已将 IIS 指向项目文件夹而不是发布目录。

我已经分别完成了以下每一项

  • 已验证 NTLM 是 IIS 中的第一个提供程序
  • &lt;allow users="*" /&gt;&lt;deny users="?" /&gt; 添加到我的网络配置中
  • &lt;windowsAuthentication enabled="true" /&gt; 添加到我的网络配置中

【问题讨论】:

  • vs中的每个项目都有一个applicationhost.config,可能会影响匿名认证和windows认证。请检查一下。它位于 DRIVE:\MYPROJECT\.vs\config\applicationhost.config
  • 下面是 applicationhost.config 与身份验证相关的内容。我将匿名更新为 true,将 windows 更新为 false,并将 NTLM 向上移动以使该文件符合 IIS 设置和我需要的内容,但它对行为没有影响......我将尝试从刮。

标签: .net authentication iis


【解决方案1】:

TLDR:在这里回答:ASP.NET Calling WebMethod with jQuery AJAX "401 (Unauthorized)"

我仍然不清楚为什么匿名身份验证设置为启用并且我无法在 VS 中更改它,但我已经解决了提示问题。事实证明,只有当 js 尝试调用我设置的 webmethods 时才会出现提示。

链接更详细,但需要对 RouteConfig.RegisterRoutes 进行以下更改...

        //settings.AutoRedirectMode = RedirectMode.Permanent;
        settings.AutoRedirectMode = RedirectMode.Off;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多