【发布时间】:2018-12-11 12:14:08
【问题描述】:
使用 Windows 身份验证和 ASP.NET 模拟托管在 IIS 中的 MVC Web 应用程序访问共享网络位置并列出共享给当前用户的文件。它在 chrome 中工作,而在使用 Firefox 时无法工作。
System.Security.Principal.WindowsIdentity.GetCurrent().Name
这在两种情况下都会返回当前用户。但是当使用 Firefox 时,共享位置的访问被拒绝。
编辑: Firefox 中的问题已修复,但现在 MS Edge 也有同样的问题
【问题讨论】:
-
我猜测这可能是因为 Firefox 使用 NTLM 而不是 Kerberos 连接到 IIS,因此没有可用于连接到网络共享的后续 Kerberos 令牌。你对此无能为力。这样做时真的有必要冒充用户吗?网络共享不能只提供给运行 IIS 应用程序池的帐户吗?
-
有多个用户可以访问不同的文件...
-
您仍然可以编写代码来根据访问控制规则确定用户可以访问哪些文件,然后仅返回这些文件。这并不意味着您必须实际使用他们的身份才能访问它们。
标签: c# asp.net-mvc firefox iis impersonation