1

所以这是我试图找到解决方案的场景。

我的公司目前有一个员工记录系统,但它没有链接到活动目录。因此,我们有重复且经常不准确的数据。我正在尝试做的事情是允许记录系统更新活动目录中的值,但是我想确定可以更改的范围以及由谁更改。所以

  1. 当我们有新员工时,IT 将输入初始记录,这也将创建 AD 用户。
  2. hr 出现并更新标题/描述/电话/地址等,但他们不应该能够从系统中创建或删除记录。(他们必须提交一张票,或其他东西)

我一直在尝试阅读有关 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();
}
4

2 回答 2

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 一样)。

于 2012-12-14T04:48:01.897 回答
0

委托是一种更强的模仿形式。模拟允许您充当本地计算机上的用户,委托允许您充当远程计算机上的用户。避免委派的唯一方法是将 AD 中的控制权委派给 Web 服务(在这种情况下,您作为网络​​服务运行,因此让 Web 服务器的计算机帐户能够写入所需的属性),并让 Web服务执行更新。但这不是一个好主意,因为您不能将更改归因于使用该网站的用户。

于 2012-12-14T21:06:26.517 回答