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

时间:2018-08-10 15:05:17

标签: asp.net iis visual-studio-2017 iis-express iis-express-10

在工作中,我们被迫进行硬件刷新,我们从带有VS 2013和IIS Express 6的Windows 7盒子升级到带有VS 2017和IIS Express 10的Windows 10盒子。问题是Windows身份验证拒绝工作。我得到了401.2-未经授权,并带有“无效的验证标头”的解释。

我已经检查了web.config和该Web项目的属性,它们是正确的。我已经修改了项目中.vs文件夹中的applicationhost.config文件,以启用Windows身份验证。我什至检查了文件的权限,以确保经过身份验证的用户具有正确的权限。这些都不起作用。

这一切在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上运行。我可以很好地登录运行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。然后,我可以运行我的Web应用程序,并使用我的管理员帐户登录该网站。这似乎不再起作用。我可以使我的应用程序正常工作的唯一方法是在我的管理员帐户下运行所有​​程序。否则,Windows身份验证将不起作用。从安全角度来看,这很糟糕,我想找到一个更好的解决方案。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您只需要按以下链接中所述更改项目中的某些属性! enable windows authentication

相关问题