繁体   English   中英

调试 IIS Express 认证问题

[英]Debugging IIS Express authentication issue

我有一个带有 Windows 身份验证的 MVC 网页,用户使用域凭据登录。 这是我的身份验证 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 Application_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 在 Application_Start() 和 Index() 中返回相同的值。 在文件资源管理器中,此用户可以导航到共享位置并很好地访问文件。 网络位置将用户列为具有访问权限。

我已经用完了我所知道的地方来解决这个问题。 我确定如果我在正确的位置查看,它会显示错误的用户或错误的域或错误的身份验证方法,但我不知道在哪里看。 关于我应该在哪里 go 的任何提示?

我要把这件事归咎于流行病。 显然,当我们的办公室搬到远程并开始使用 VPN 时,我们的 VPN 设置触发了 IIS Express 中的额外安全功能

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

我们可能会找到一个更安全的 VPN 设置修复程序,但我们在不在办公室时的临时解决方案是在通过 VPN 进行调试时不使用模拟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM