所以这就是我想要找到解决方案的场景。
我的公司目前为其员工提供了记录系统,但它没有链接到活动目录。由于这个原因,我们有重复的,通常是不准确的数据。我正在尝试做什么允许记录系统更新活动目录中的值,但是我想要限制可以更改的内容和由谁。所以
我一直在努力阅读有关kerberos双跳问题,而且我似乎需要委派的能力,但是,我自己的IT能力还不够高。我可以升级并尝试从更高级别的IT人员那里获得签名,以便授权到一个帐户,但我将其作为最后的手段保存。
我想使用模仿来完成任务,但我很难找到关于如何实施模仿的明确答案。
我在web.config和iis中启用了模拟。我已将appPool标识设置为网络服务。之后,我迷失了下一步该做什么或如何测试设置。
编辑1: 我也遵循这种模式进行冒充
var iid = HttpContext.Current.User.Identity;
WindowsIdentity wi = (WindowsIdentity)iid;
WindowsImpersonationContext wic = wi.Impersonate();
try
{
// do something with a directory entry here
}
catch
{}
finally
{
wic.Undo();
}
答案 0 :(得分:2)
确保您的Web服务器在AD中启用了委派。无论如何,这是我总是忘记的一步。
情侣参考链接:
http://blog.reveille.org.uk/2010/01/asp-net-impersonation-delegation/ http://support.microsoft.com/kb/810572?wa=wsignin1.0
另外,请确保您已在网站上使用Windows身份验证。
如果只有具有正确AD访问权限的用户能够操作AD设置,那么您将能够快速地说出它是否真的很快(因为它实际上就像他们自己更改AD一样)。
答案 1 :(得分:0)
代表团是一种更强大的模仿形式。模拟允许您充当本地计算机上的用户,委派允许您充当远程计算机上的用户。避免委派的唯一方法是将AD中的控制权委托给Web服务(在这种情况下,您将作为网络服务运行,因此为Web服务器的计算机帐户提供写入所需属性的能力),并拥有Web服务执行更新。但这不是一个好主意,因为您无法将更改归因于使用该网站的用户。