首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Active Directory

Active Directory
EN

Stack Overflow用户
提问于 2011-06-01 20:05:44
回答 3查看 416关注 0票数 0

C#应用程序是否可以找到windows domain上的所有用户,从而使该应用程序在domain外部运行,并且不在同一网络上可能是通过http

EN

回答 3

Stack Overflow用户

发布于 2011-06-01 20:10:47

您需要应用程序的某些组件在“区域”中运行,在“区域”中它可以询问Active Directory。

这可能是一个暴露为WCF web服务的小型服务器端组件,您可以通过HTTP从任何地方查询您需要的内容(默认情况下不安全)。

票数 0
EN

Stack Overflow用户

发布于 2011-06-01 20:14:51

这取决于域的安全设置。当然,可以从域外绑定到域控制器,而不是直接通过http。假设他们没有在防火墙上阻止端口,你可以使用常规的LDAP连接或依赖于.NET中的Active Directory类,最有可能的是你必须使用安全连接,而它将在一个非标准端口上。您需要提供连接的域凭据才能进行连接。因为您在域之外,所以您可能还必须指定要绑定到的域控制器--请参阅System.DirectoryServices.AccountManagement中的PrincipalContext,特别是允许您提供凭据和控制器名称/端口的constructor

票数 0
EN

Stack Overflow用户

发布于 2014-08-15 13:07:54

公共DataTable getActiveDirectoryUsers() {

代码语言:javascript
复制
            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;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6200846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档