【问题标题】:Impersonation NOT working - Network Share模拟不起作用 - 网络共享
【发布时间】:2011-04-02 03:13:52
【问题描述】:

我创建了一个虚拟目录 (IIS 7.0),它指向一个网络共享。此虚拟目录位于我的 Web 应用程序根目录下。

我尝试使用带有域凭据的匿名访问。另外,我尝试使用如下模拟...

<identity impersonate="true" userName="<supplied username>"
password="<supplied password>" />

问题:应用程序始终使用 IUSR 连接到该共享并获得“拒绝访问”。我需要强制我的应用程序使用上面的域名。


更新
1. 在运行 procmon 时,每次访问被拒绝之前,我都会看到“FAST IO DISALLOWED”消息。不确定它是否相关。
2. 我怀疑这里有双跳问题的症状。但不知道如何真正验证它或如何绕过它而不真正将身份验证更改为 Kerbros。

谢谢!

【问题讨论】:

  • “我现在不想使用编程来解决这个问题” - 你最好在服务器故障时问这个问题。
  • 感谢内特的建议。如果我能得到一个编程修复就可以了。不知何故,我觉得这是一个双跳问题,但不确定如何验证它以及解决方法是什么。
  • 我认为您绝对可以通过编程方式连接到网络共享 - 查看这篇文章 west-wind.com/weblog/posts/1572.aspx
  • Nate:本文描述了在 web.config 中完成的模拟的替代方法(我没有任何此类限制)。它实际上是通过代码临时模拟的。我看不出这里的模拟与我可以通过 Web.config 进行的模拟有何不同。
  • 我在这个问题中看不到任何与编程相关的内容,您可能会在 serverfault 上得到更好的答案 =)

标签: asp.net sharepoint iis iis-7 permissions


【解决方案1】:

IIS 7 默认运行在"integrated mode".
您不能再在那里冒充
(您不会收到关于冒充的错误消息,但它不会提升权限)

您需要将应用程序的 ASP.NET app-pool 切换到 "classic mode" 才能使用模拟。
请注意,这也意味着您失去了依赖于集成模式的所有功能。

另一种可能的解决方案可能是创建一个指向 smb 共享的符号链接,授予符号链接的 IUSR 权限,并让操作系统处理其余部分(不知道这是否有效,鉴于 MSFT 的跟踪记录,我我猜它不会)。

mklink /d  C:\inetpub\wwwroot\your_application_root\ShareName \\Server\ShareName\Directory

mklink 但是需要 Windows Vista+,即 Windows Server 2008+

【讨论】:

【解决方案2】:

对于 ASP.NET 应用程序,通常建议您在“ASP.NET 用户帐户”下运行而不进行模拟。这个想法是,这个帐户是一个低权限帐户,如果由于某种原因机器被入侵,它几乎不会造成任何损害。

(这里是对您应该有帮助的文章的链接参考)。

http://west-wind.com/weblog/posts/2153.aspx

【讨论】:

    【解决方案3】:

    我同意乔的说法。但是,在大多数应用严格策略的企业环境中,不可能授予低权限帐户访问某些资源。在这种情况下,程序化模拟将是一种更好的方法: http://www.west-wind.com/weblog/posts/1572.aspx

    【讨论】:

      【解决方案4】:

      尝试禁用匿名访问。如果您不强制用户登录(通过在 web.config 中添加 deny="?")使用 Windows 身份验证,则会导致 IIS 使用配置的帐户进行模拟。

      【讨论】:

        【解决方案5】:

        授予 IUSR 帐户访问您的共享的权限。最好让您的程序使用内置的 ASP 帐户(如 Joe Garrett 所述)并授予该共享访问权限。

        【讨论】:

        • 如果信任级别设置为“Medium”,这仍然不起作用,因为MediumTrust 不允许您在应用程序根目录下的任何位置进行写入。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-09
        • 1970-01-01
        • 2020-11-11
        • 1970-01-01
        • 2011-01-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多