Windows 身份验证不适用于 IIS Express 10

Windows Authentication doesn't work with IIS Express 10

在工作中,我们被迫进行硬件更新,我们从带有 VS 2013 和 IIS Express 6 的 Windows 7 box 升级到带有 VS 2017 和 IIS Express 10 的 Windows 10 box。问题是 Windows 身份验证拒绝工作。我收到 401.2 - 未经授权,解释为 "Invalid Authentication Headers"。

我已经检查了 Web 项目的 web.config 和属性,它们是正确的。我已经修改了项目中.vs 文件夹中的applicationhost.config 文件以启用windows 身份验证。我什至检查了文件的权限,以确保经过身份验证的用户拥有正确的权限。 None 有效。

这一切在 IIS Express 6 中都运行良好。Microsoft 在 IIS Express 10 中做了什么改变导致这一切都搞砸了?

编辑:必须手动输入这些东西,因为我无法从开发机器上移动代码。

web.config:

<system.web>
  <customErrors mode="off"/>
  <compilation debug="true" targetFramework="4.5.1" />
  <httpRuntime targetFramework="4.5" />
  <authentication mode="Windows" />
  <authorization>
     <allow users="*" />
  </authorization>
</system.web>

如果您想要 web.config 的任何其他部分,请问我。

至于 ApplicationHost.config,它基本上是 VS2017 创建的任何东西,因为这是一台新机器,并且项目中没有现成的机器。我尝试进行的更改:

<windowsAuthentication enabled="true">   

<anonymousAuthentication enabled="false" userName="">   

<section name="windowsAuthentication" overrideModeDefault="allow">

一个附加数据点:Firefox 上的应用程序 运行s。我可以正常登录我们的测试服务器 运行ning IIS 8.5,但无法访问 IIS Express 上的应用程序。

我已经创建了一个新的 MVC 应用程序,并且只是 运行。 运行在 IE 中没问题,但它无法验证来自 Firefox 和 Edge 的用户。

编辑:发现 Edge 不支持 Windows 本地主机身份验证:https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/4776775/

仍然需要让它与 Firefox 一起工作。

再次编辑:所以,我想我知道发生了什么。我有两个用户帐户:普通用户帐户和具有更多权限的管理员帐户。我在 Windows 7 下所做的是,当我登录到我的常规帐户时,我 运行 VS 在我的管理员帐户下。然后我可以 运行 我的网络应用程序并使用我的管理员帐户登录该网站。这似乎不再起作用了。让我的应用程序正常工作的唯一方法是 运行 它全部在我的管理员帐户下。否则,Windows 身份验证将不起作用。安全方面,这太糟糕了,我想找到更好的解决方案。

我要把这个问题标记为已回答,然后再提出一个新问题。当前的解决方案是 运行 我们管理员帐户上的所有内容,以使 windows 身份验证正常工作。不理想。

您只需要更改项目中的一些属性,如下所述link! enable windows authentication