本文將告訴您,如何使用 Microsoft Visual C#.NET 或 Microsoft Visual C# 輪詢對 Active Directory 的變更。本文將示範如何執行這項操作的範例程式碼。
輪詢對 Active Directory 的變更,請依照下列步驟執行:
- 啟動 Microsoft Visual Studio.NET 或 Microsoft Visual Studio 2005。
- 建立新的 Visual C# 主控台應用程式專案。
預設情況下,Class1.cs 檔案會建立 Visual 的 Studio.NET 中,並且 Program.cs 檔案建立在 Visual Studio 2005 中]。 - 按一下 [專案],然後再按一下 [加入參考。
[加入參考] 對話方塊隨即出現。 - 按一下 System.DirectoryServices.dll。
- 按一下 [COM] 索引標籤。
- 按一下 [使用中的 DS 型別程式庫。
- 按一下 [確定] 將 System.DirectoryServices 和 ADSI 程式庫] 加入至目前的專案做為參考。
- 自動產生的程式碼中 [Class1.cs 或 Program.cs 檔案中取代下列程式碼:
// Use Visual C# .NET to poll for changes to the Active Directory.
using System;
using System.DirectoryServices;
using ActiveDs;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
//TODO: Set UserName, DomainName, and UpperLevelDomain to reflect your environment.
PollADObject( "LDAP://cn=UserName,cn=Users,dc=DomainName,dc=UpperLevelDomain" );
}
static void PollADObject(string strUserADSPath )
{
DirectoryEntry oUser = new DirectoryEntry(strUserADSPath);
string strUserName = oUser.Name ;
IADsLargeInteger li_ad = (IADsLargeInteger)oUser.Properties["USNChanged"].Value ;
long l_uChanged = GetLongFromLargeInteger( li_ad );
System.Console.WriteLine( l_uChanged.ToString()+" " + strUserName );
Console.ReadLine();
}
static long GetLongFromLargeInteger( IADsLargeInteger Li )
{
long retval = Li.HighPart;
retval <<=32;
retval |=(uint)Li.LowPart;
return retval;
}
}
}
- 搜尋 TODO 文字字串,在先前的範例程式碼中。修改範例程式碼,為您的環境。
- 請按 F5 編譯並執行應用程式。
取得更多資訊有關 Active Directory 中追蹤修訂請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站]:
取得更多資訊有關 Active Directory 中追蹤修訂請參閱平台 SDK 使用 Active Directory > 一節中的追蹤修訂主題]。
文章編號: 326091 - 上次校閱: 2007年5月23日 - 版次: 2.5
這篇文章中的資訊適用於:
- Microsoft Visual C# 2005 Express Edition
- Microsoft Visual C# .NET 2003 標準版
- Microsoft Visual C# .NET 2002 Standard Edition
| kbmt kbhowto KB326091 KbMtzh |
機器翻譯重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:
326091
(http://support.microsoft.com/kb/326091/en-us/
)
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。