我知道有很多关于Active Directory集成的帖子,但我不是要求集成方法(我已经找到),我只是想讨论是否可以优化我的方法,所以这里是基本要求: 我正在研究MVC4应用程序和客户端只是让我让Active Directory的所有用户都保存在我们的UserProfile表中,每当新用户添加到Active Directory时,它应该反映到UserProfile表。
我的方法:我将构建一个调度程序来获取活动目录用户(使用System.DirectoryServices命名空间)并检查活动目录中的用户数量,如果它增加了,那么我将添加新的活动目录用户到我的数据库。 现在我想提出一个建议,即如果有可能,我可以直接在我的sql server UserProfile表中反映新的Active Directory用户,那么我不需要创建一个调度程序,它将是更轻量级的进程
提前致谢
答案 0 :(得分:1)
如果对Active Directory有更改,您应该能够在sql server中安排一个更新表的过程。您可以使用唯一键来加入和合并数据,并使其每天,每周,每小时等运行。这是我目前正在使用的相同内容。它工作得很好,没有app needibg在幕后运行。
答案 1 :(得分:0)
取决于对象的数量不是要走的路。考虑添加新用户和删除其他用户的情况。尽管您需要获得一些更改,但计数仍然相同。
执行此操作的一种方法是使用DirectorySynchronization class。此类允许您将更改与活动目录同步。
第一次使用它时,它会为您提供所需的所有对象(基于某些过滤器),并且还为您提供同步令牌。然后,您将该令牌存储到某个存储中。下次进行同步时,您将为此类提供令牌,以便它知道您当前拥有的内容并仅为您提供差异。请参阅引用的MSDN参考中的示例。
使用此API时,您需要了解一些事项。我建议你先阅读一下。 This link包含您需要注意的一些信息。