2015-10-31 42 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用於更新你的表。您可以使用唯一密鑰來加入和合並數據,並使其每日,每週,每小時等運行。這是目前我用於同一事情的內容。它效果很好,沒有應用程序需要在後臺運行。