代码之家  ›  专栏  ›  技术社区  ›  Samuel Kim

冒充和委派

  •  2
  • Samuel Kim  · 技术社区  · 16 年前

    我使用的是模拟,用于访问以下UNC共享上的文件。

      var ctx = ((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate();
      string level = WindowsIdentity.GetCurrent().ImpersonationLevel);
    

    在使用iis6的两个Windows 2003服务器上,我获得了不同的模拟级别: 授权 在一台服务器上 模仿 在另一台服务器上。

    这会导致无法访问服务器上具有“模拟”级别的UNC共享的问题。

    造成这种差异的原因是什么?我在machine.config和IIS设置中搜索了应用程序池、站点和虚拟目录,但无法找到此问题的原因。

    3 回复  |  直到 16 年前
        1
  •  7
  •   Niklas    10 年前

    听起来,其中一台计算机受您的Active Directory信任,但另一台不受信任。如果应用程序池标识为“网络服务”,请确保在AD中计算机帐户标记为“信任委派”。

    您可能需要请求您的广告管理员强制进行复制,然后注销/登录到您的工作站以刷新您的Kerberos票证缓存。

        2
  •  2
  •   Jon    16 年前

    如果您使用localhost作为webserver进行测试,但在部署时收到错误,则可能会遇到双跃点问题….在本文中概述 blog post

        3
  •  1
  •   Kirk Liemohn    14 年前

    对于其中一个我们模拟()的应用程序,我们发现必须修改应用程序池所有者的本地安全策略,并将该帐户添加到以下策略/组:

    1. 作为操作系统特权的一部分。
    2. 身份验证后模拟客户端。

    在服务器上,运行“开始”>“所有程序”>“管理工具”>“本地安全策略”,然后导航到“本地安全策略”>“用户权限分配”,并查找上面的两个策略。