C# 调试IIS Express身份验证问题

C# 调试IIS Express身份验证问题,c#,asp.net-mvc,iis-express,C#,Asp.net Mvc,Iis Express,我有一个带有Windows身份验证的MVC网页,其中用户使用域凭据登录。以下是我的auth web.config设置: <system.web> <compilation debug="true" targetFramework="4.6.1" /> <httpRuntime targetFramework="4.5" maxQueryStringLength="32768&quo

我有一个带有Windows身份验证的MVC网页,其中用户使用域凭据登录。以下是我的auth web.config设置:

<system.web>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.5" maxQueryStringLength="32768" maxUrlLength="65536" />
    <customErrors mode="Off" />
    <authentication mode="Windows" />
    <authorization>
      <allow roles="NG\All-Trained-Users" />
      <deny users="*" />
    </authorization>
    <hostingEnvironment shadowCopyBinAssemblies="false" />
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
    <identity impersonate="true" />
</system.web>

但是,在应用程序中拒绝访问共享资源

  • global.asax.cs应用程序_Start()方法完成后,系统会提示用户输入Windows身份验证。在这种方法中,应用程序可以访问共享资源。例如,
    Console.Writeline(Directory.Exists(\\existing\shared\Directory))
    打印“true”。我的理解是,登录的Windows用户身份用于验证访问权限,对吗
  • 我正在使用相同的凭据登录Windows和登录网页。但是,当我登录到该网页时,有些事情发生了变化,因为
    Console.Writeline(Directory.Exists(\\existing\shared\Directory”)
    将“false”打印为Index()方法的第一行。尝试访问文件将返回System.UnauthorizedAccessException。这些凭证在MVC中是否有不同的处理方式
System.Environment.UserName和System.Environment.UserDomainName在应用程序_Start()和索引()中返回相同的值。在文件资源管理器中,该用户可以导航到共享位置并访问文件。网络位置将用户列为具有访问权限


我已经找不到可以解决这个问题的地方了。我确信如果我看对了地方,它会显示错误的用户、错误的域或错误的身份验证方法,但我不知道该看哪里。有什么关于我应该去哪里的提示吗?

我要把这件事归咎于大流行。显然,当我们的办公室移动到远程并开始使用VPN时,我们的VPN设置在IIS Express中触发:

使用集成安全性时,将禁用匿名访问,并启用模拟,安全措施生效,不允许您的站点访问任何网络服务器上的资源


我们可能会找到一个更安全的VPN设置修复程序,但我们外出时的临时解决方案是在VPN上调试时不使用模拟。

更多详细信息:我使用的是VS Enterprise 2019版本16.8.2,运行IIS Express版本10.0.19041.1。而且,它过去在本地工作,现在仍然可以在部署后工作。几个月前,它在当地坏了,但我直到现在才需要修复它。就好像IIS Express在Windows身份验证之前和之后都正确填充了用户名,但在身份验证之后却没有正确填充该用户的权限?