Visual studio 2013 Windows身份验证在IIS Express中不起作用,正在使用Visual studio 2013、Windows 8进行调试

Visual studio 2013 Windows身份验证在IIS Express中不起作用,正在使用Visual studio 2013、Windows 8进行调试,visual-studio-2013,windows-authentication,iis-express,Visual Studio 2013,Windows Authentication,Iis Express,我刚刚将我的应用程序从Visual studio 2012升级到Visual studio 2013。我的windows身份验证不再有效。这给了我以下的错误 HTTP Error 401.2 - Unauthorized You are not authorized to view this page due to invalid authentication headers. 在VisualStudio中,可以选择从网站属性本身选择身份验证。所以我禁用了匿名访问并启用了w

我刚刚将我的应用程序从Visual studio 2012升级到Visual studio 2013。我的windows身份验证不再有效。这给了我以下的错误

     HTTP Error 401.2 - Unauthorized
     You are not authorized to view this page due to invalid authentication headers.
在VisualStudio中,可以选择从网站属性本身选择身份验证。所以我禁用了匿名访问并启用了windows身份验证,但它要求我输入用户名和密码,如下所示。即使我在这里提供域凭据。它仍然一次又一次地给我这个弹出窗口

网络配置:

     <authentication mode="Windows" />
     <authorization>
     <deny users="?" />
     </authorization>
     <identity impersonate="false" />
     <trace enabled="true" />
     <authentication>

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

            <basicAuthentication enabled="false" />

            <clientCertificateMappingAuthentication enabled="false" />

            <digestAuthentication enabled="false" />

            <iisClientCertificateMappingAuthentication enabled="false">
            </iisClientCertificateMappingAuthentication>

            <windowsAuthentication enabled="true">
                <providers>
                    <add value="Negotiate" />
                    <add value="NTLM" />
                </providers>
            </windowsAuthentication>

        </authentication>

        <authorization>
            <add accessType="Allow" users="*" />
        </authorization>



        <location path="Path">
        <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="true" />
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
        </system.webServer>
        </location>

IIS Express aspnetConfig:

     <authentication mode="Windows" />
     <authorization>
     <deny users="?" />
     </authorization>
     <identity impersonate="false" />
     <trace enabled="true" />
     <authentication>

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

            <basicAuthentication enabled="false" />

            <clientCertificateMappingAuthentication enabled="false" />

            <digestAuthentication enabled="false" />

            <iisClientCertificateMappingAuthentication enabled="false">
            </iisClientCertificateMappingAuthentication>

            <windowsAuthentication enabled="true">
                <providers>
                    <add value="Negotiate" />
                    <add value="NTLM" />
                </providers>
            </windowsAuthentication>

        </authentication>

        <authorization>
            <add accessType="Allow" users="*" />
        </authorization>



        <location path="Path">
        <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="true" />
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
        </system.webServer>
        </location>

如果你想了解更多细节,请告诉我

更新:

     <authentication mode="Windows" />
     <authorization>
     <deny users="?" />
     </authorization>
     <identity impersonate="false" />
     <trace enabled="true" />
     <authentication>

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

            <basicAuthentication enabled="false" />

            <clientCertificateMappingAuthentication enabled="false" />

            <digestAuthentication enabled="false" />

            <iisClientCertificateMappingAuthentication enabled="false">
            </iisClientCertificateMappingAuthentication>

            <windowsAuthentication enabled="true">
                <providers>
                    <add value="Negotiate" />
                    <add value="NTLM" />
                </providers>
            </windowsAuthentication>

        </authentication>

        <authorization>
            <add accessType="Allow" users="*" />
        </authorization>



        <location path="Path">
        <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="true" />
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
        </system.webServer>
        </location>
我发现如果我从web.config中删除下面的行,它就会开始工作

     <remove users="*" roles="" verbs="" />

看起来你解决了自己的问题!你真好。除了这篇帮助我的文章之外,我发现以下内容对配置我的IIS Express非常有帮助

编辑:我已经从相关链接复制了重要信息,以防它死掉。这完全来自用户vikomall

选项1

编辑
\My Documents\IISExpress\config\applicationhost.config
文件并启用Windows身份验证,即:

<system.webServer>
...
  <security>
...
    <authentication>
      <windowsAuthentication enabled="true" />
    </authentication>
...
  </security>
...
</system.webServer>

...
...

安装VS 2010 SP1后,可能需要应用选项1+2才能使windows身份验证正常工作。此外,您可能需要在IIS Express applicationhost.config中将匿名身份验证设置为false:

<authentication>

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

小心修改applicationhost.config-在Visual Studio 2015中,我发现它有时驻留在本地项目目录中

例如:

DRIVE:\MYPROJECT\.vs\config\applicationhost.config
如果不确定正在使用哪个applicationhost配置文件,可以使用ProcMon监视文件访问,然后根据“路径”缩小结果范围,以查看VS在调试时实际读取的内容


更新:这似乎也是Visual Studio 2017中的行为。

在Visual Studio 2017的asp.net核心项目中,身份验证在launchSettings.json中设置

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:54491/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "api/values",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "TestAspNetCoreProd": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api/values",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "http://localhost:54492"
    }
  }
}

对于Visual Studio 2019,将在中找到applicationhost.config


驱动器:\MYPROJECT\.vs\$(PROJECTNAME)\config\applicationhost.config

有人能告诉我为什么这被否决了吗?我将原作者归因于此,并在此处复制了相关信息。它是没有用还是违反了一些规则?我认为applicationhost.config是特定于该项目的。修改此文件可能比修改IISExpress配置级别的文件更好。如果使用Rider,请查看项目中的
.idea
目录。这些设置控制如何在.vs文件夹中生成applicationhost.config文件。如果您在更改此设置之前已尝试运行该项目,则它似乎不会工作,因为不会自动重新生成applicationhost.config。您需要将其从磁盘中删除,或者按照其他人的描述手动编辑该文件。然而,它将更好地为下一个家伙来了。