2015-10-31 110 views
-1

我知道有很多关于活动目录集成的文章,但我不是在这里要求整合的方法(我已经找到),我只想讨论是否有可能优化我的方法,所以这里是基本要求: 我正在使用MVC4应用程序,客户端只是要求我将所有Active Directory用户保存在我们的UserProfile表中,并且每当有新用户添加到Active Directory时,它都应该反映到UserProfile表。关于活动目录与Asp.Net MVC集成的建议4

我的方法:我将构建一个调度程序来获取活动目录用户(使用System.DirectoryServices命名空间)并检查活动目录中的用户数,如果增加了,那么我将添加新的活动目录用户到我的数据库。 现在我想采取一个建议,是否有任何直接的方式来反映我的SQL Server UserProfile表中新的Active Directory用户,如果这是可能的,那么我不需要创建一个调度程序,它会更轻量级的过程。

在此先感谢

回答

0

根据对象的数量是不是要走的路。考虑添加新用户并删除其他用户的情况。虽然发生了一些需要获取的更改,但仍然保持不变。

一种方法是使用DirectorySynchronization class。该类允许您将更改与活动目录同步。

第一次使用它时,它为您提供了所需的所有对象(基于某个过滤器),并且它还为您提供同步令牌。然后,您将该令牌存储到某个存储中。下一次你来同步,你提供这个类与令牌,以便它知道你现在有什么,只给你的区别。请参阅参考MSDN参考中的示例。

有些事情你需要知道什么时候使用这个API。我建议你先阅读它。 This link包含一些您需要注意的信息。

+0

非常感谢。..另外一个问题我检查了链接,他们是一个文件中的强大的同步cookie,然后将其产业化.. 1.如果这个cookie是持久性的(我的意思是我想运行一个调度器在每30分钟)2.如果将此cookie值存储在数据库中,它将起作用。 –

+0

1.是的,您应该将cookie存储在持久存储中。请注意,每次进行同步时,“DirectorySynchronization”类将为您提供一个新的cookie,您需要存储最新的cookie(并丢弃旧的cookie)。是的,你可以将它存储在数据库中。请阅读我提供的有关存储和存储位置的第二个参考资料中的注释。 –

+0

再次感谢。雅各布 –

1

你应该能够安排在SQL Server中的过程,如果有更改到Active Directory用于更新你的表。您可以使用唯一密钥来加入和合并数据,并使其每日,每周,每小时等运行。这是目前我用于同一事情的内容。它效果很好,没有应用程序需要在后台运行。