簡體   English   中英

活動目錄

[英]Active Directory

C# 應用程序是否有可能找到windows domain上的所有用戶,以便應用程序在domain運行並且不在同一網絡上可能超過http

公共數據表 getActiveDirectoryUsers() {

            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("Name"));
            dt.Columns.Add(new DataColumn("POCode"));
            dt.Columns.Add(new DataColumn("Active"));
            DataRow dtrow;

            DirectoryEntry myLdapConnection = createDirectoryEntry();
            List<Users> listAlluers = new List<Users>();

            DirectorySearcher search = new DirectorySearcher(myLdapConnection);
            SearchResult result;
            SearchResultCollection resultCol = search.FindAll();

            //search.PropertiesToLoad.Add("cn");//user name
            //search.PropertiesToLoad.Add("title"); //design


            if (resultCol != null)
            {
                for (int counter = 0; counter < resultCol.Count; counter++)
                {
                    string UserNameEmailString = string.Empty;
                    result = resultCol[counter];
                    if (result.Properties.Contains("cn") && result.Properties.Contains("title"))
                    {
                        dtrow = dt.NewRow();
                        dtrow[0] = (String)result.Properties["cn"][0];
                        dtrow[1] = (String)result.Properties[BusinessLayer.UserConfig.UniqueField][0];
                        dtrow[2] = (String)result.Properties["useraccountcontrol"][0];
                        dt.Rows.Add(dtrow);
                    }
                }
            }  

        return dt;
    }
    static DirectoryEntry createDirectoryEntry()
    {

        String Path = "LDAP://your.server.Ip";
        DirectoryEntry ldapConnection = new DirectoryEntry(Path, "username", "password");

        return ldapConnection;
    }

您需要應用程序的某些組件在可以詢問 Active Directory 的“區域”內運行。

這可能是作為 WCF web 服務公開的小型服務器端組件,您可以通過 HTTP 從任何地方查詢您需要的內容(默認情況下不安全),

這取決於域的安全設置。 當然,不是直接通過 http 從域外部綁定到域 controller 肯定是可能的。 假設他們沒有阻止防火牆上的端口,您可以使用常規 LDAP 連接或依賴 .NET 中的 Active Directory 類。 很可能您必須使用安全連接,並且它將位於非標准端口上。 您需要為連接提供域憑據才能進行連接。 因為您在域之外,您可能還必須指定要綁定到的域 controller - 請參見 System.DirectoryServices.AccountManagement 中的 PrincipalContext,特別是允許您提供憑據的構造函數和 controller 名稱/端口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM