小编Per*_*alt的帖子

如何找出哪个服务器在我的Windows域上托管LDAP?

我正在尝试开发一个应用程序(C#)来查询LDAP服务器.我不知道命名为查询的实际服务器 - 有没有办法找到使用标准的Windows工具或.net中的东西?

我也听说有传言说只要我的查询字符串中有dc = domain,dc = com,就不一定需要服务器名称(ldap:// server /),但我到目前为止还能够以这种方式使用它.

有小费吗?

谢谢

asp.net ldap active-directory

35
推荐指数
3
解决办法
14万
查看次数

ASP.NET Active Directory成员资格提供程序和SQL Profile Provider

我目前正在为我正在开展的新项目设计会员/简介计划,我希望得到其他人的一些意见.

该项目是一个ASP.NET Web应用程序,由于时间紧迫,我试图使用任何和所有内置的.NET框架组件.该网站可能会招待<5000个用户.每个用户都有一个配置文件,其中自定义设置和对象将在访问之间保持不变.

我需要使用现有的Active Directory进行身份验证.由于无法扩展AD模式以保存新字段,因此我需要将用户设置和对象保存在不同的数据存储中.我也被告知ADAM可能不是一个可能的解决方案.

我希望将Active Directory成员资格提供程序用于我的身份验证方案,将SQL配置文件提供程序用作用户配置文件数据存储.我宁愿不构建自定义配置文件提供程序,但如果需要,我不认为这会带来很多问题.

我想知道这是否是一个可能的解决方案,如果是这样,有没有人对这种方法有任何好运.

任何评论将不胜感激.

谢谢.

membership asp.net provider active-directory

16
推荐指数
1
解决办法
2万
查看次数

使用DirectoryServices.AccountManagement从OU获取组

我想使用AccountManagement列出组织单位中的所有组.

以下代码段与DirectoryServices一起使用,但我必须在结果中使用DirectoryEntry路径实现GroupPrincipal(感觉就像一个脏修复).

DirectoryEntry root = new DirectoryEntry("LDAP://OU=Marketing,OU=Operations,OU=Applications,DC=mycompany,DC=local")
        DirectorySearcher ds = new DirectorySearcher(root);
        ds.Filter = "(objectCategory=group)";
        SearchResultCollection results = ds.FindAll();
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

谢谢!

.net c# directoryservices active-directory

15
推荐指数
1
解决办法
3万
查看次数

使用C#向Active Directory注册更改通知

此链接http://msdn.microsoft.com/en-us/library/aa772153(VS.85).aspx说:

您最多可以在一个LDAP连接上注册五个通知请求.您必须有一个专用线程,等待通知并快速处理它们.当您调用ldap_search_ext函数来注册通知请求时,该函数会返回标识该请求的消息标识符.然后使用ldap_result函数等待更改通知.发生更改时,服务器会向您发送一条LDAP消息,其中包含生成通知的通知请求的消息标识符.这会导致ldap_result函数返回标识已更改对象的搜索结果.

通过.NET文档我找不到类似的行为.如果有人知道如何在C#中做到这一点,我将非常感谢知道.我希望看到系统中所有用户的属性发生变化,以便我可以根据更改的内容执行自定义操作.

我查看了stackoverflow和其他来源没有运气.

谢谢.

c# monitor active-directory notify

11
推荐指数
1
解决办法
1万
查看次数

在AD中搜索objectGUID

我正在使用Mark Russinovich 的Active Directory Explorer.这是一个很棒的工具.

我正在使用它来导航活动目录,以确保我使用.NET的DirectorySearcher的程序返回正确的数据.

但是当我尝试使用DirectorySearcher在objectGUID中搜索我的程序时,会发生一些事情,如果我将实际的GUID作为字符串传递它不会返回任何内容,就像我使用Active Directory资源管理器一样,当我添加时

objectGuid值为f8d764ff-9a6a-418e-a641-b6f99661a8d5,其搜索子句变为:(objectGUID =\FFd\D7\F8j\9A\8EA\A6A\B6\F9\96a\A8\D5*)

我如何在我的程序中为directorySearcher执行此操作,我猜它是一个八位字符串的东西,但我无法弄明白.

.net directoryservices active-directory

8
推荐指数
2
解决办法
6037
查看次数

如何将System.DirectoryEntry"uSNChanged"属性值更改为Int64

我正在尝试获取目录服务对象的"uSNChanged"值的Int64值.不幸的是,它总是以某种COM对象的形式回归.我尝试使用转换为Int64,调用Int64.Parse(),并调用Convert.ToInt64().这些都不起作用.

对于给定的DirectoryEntry对象,此代码将显示以下属性:

    private static void DisplaySelectedProperties(DirectoryEntry objADObject)
    {
        try
        {
            string[] properties = new string[] {
                "displayName",
                "whenCreated",
                "whenChanged",
                "uSNCreated",
                "uSNChanged",
            };

            Console.WriteLine(String.Format("Displaying selected properties of {0}", objADObject.Path));
            foreach (string strAttrName in properties)
            {
                foreach (var objAttrValue in objADObject.Properties[strAttrName])
                {
                    string strAttrValue = objAttrValue.ToString();
                    Console.WriteLine(String.Format("   {0, -22} : {1}", strAttrName, strAttrValue));
                }
            }
            Console.WriteLine();
        }
        catch (Exception ex)
        {
            throw new ApplicationException(string.Format("Fatal error accessing: {0} - {1}", objADObject.Path, ex.Message), ex);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是输出:

Displaying selected properties of LDAP://server/o=org/cn=obj
   displayName            : …

directoryservices active-directory directoryentry int64

6
推荐指数
1
解决办法
4659
查看次数

GroupPrincipal.Members.Remove()不适用于大型AD组

我正在使用System.DirectoryServices.AccountManagement命名空间类来管理多个组的成员身份.这些群体控制着我们的印刷会计系统的人口,其中一些非常庞大.我遇到了从这些大型组中删除任何用户的问题.我有一个测试程序来说明问题.请注意,我正在测试的组不是嵌套的,但user.IsMemberOf()似乎也有同样的问题,而GetAuthorizationGroups()正确显示用户所属的组.有问题的小组有大约81,000名成员,因为Remove()不起作用,所以它应该超过它应该有的,并且通常大约是65K左右.

我有兴趣听到有其他人遇到过这个问题并已经解决了.我有一个与微软打开的案例,但由于呼叫中心的时间差大约为17小时,因此呼叫转向很慢,因此他们在我离开家之前大约一个小时才到达工作岗位.

using (var context = new PrincipalContext( ContextType.Domain ))
{
    using (var group = GroupPrincipal.FindByIdentity( context, groupName ))
    {
        using (var user = UserPrincipal.FindByIdentity( context, userName ))
        {
            if (user != null)
            {
                var isMember = user.GetAuthorizationGroups()
                                   .Any( g => g.DistinguishedName == group.DistinguishedName );
                Console.WriteLine( "1: check for membership returns: {0}", isMember );
                if (group.Members.Remove( user ))
                {
                    Console.WriteLine( "user removed successfully" );
                    group.Save();
                }
                else
                {
                    // do save in case Remove() is lying to me …
Run Code Online (Sandbox Code Playgroud)

.net c# active-directory account-management

5
推荐指数
1
解决办法
3950
查看次数

如何列出所有计算机以及他们最后一次登录AD?

我正在尝试检索计算机名称列表以及它们上次从Active Directory登录的日期,并将它们返回到数据表中.获取名称很容易但是当我尝试添加"lastLogon"或"lastLogonTimestamp"时,如下所示,我获得的lastLogonTimestamp的唯一值是"System._ComObject"

public DataTable GetListOfComputers(string domainName)
{
  DirectoryEntry entry = new DirectoryEntry("LDAP://DC=" + domainName + ",DC=com");
  DirectorySearcher search = new DirectorySearcher(entry);
  string query = "(objectclass=computer)";
  search.Filter = query;

  search.PropertiesToLoad.Add("name");
  search.PropertiesToLoad.Add("lastLogonTimestamp");

  SearchResultCollection mySearchResultColl = search.FindAll();

  DataTable results = new DataTable();
  results.Columns.Add("name");
  results.Columns.Add("lastLogonTimestamp");

  foreach (SearchResult sr in mySearchResultColl)
  {
    DataRow dr = results.NewRow();
    DirectoryEntry de = sr.GetDirectoryEntry();
    dr["name"] = de.Properties["Name"].Value;
    dr["lastLogonTimestamp"] = de.Properties["lastLogonTimestamp"].Value;
    results.Rows.Add(dr);
    de.Close();
  }

  return results;
}
Run Code Online (Sandbox Code Playgroud)

如果我使用像LDP这样的工具查询AD,我可以看到该属性存在并填充了数据.我怎样才能获得这些信息?

c# directoryservices

3
推荐指数
2
解决办法
8566
查看次数

emacs中的八度音程(搜索程序,以便这样的文件或目录)

我试图在emacs中运行Octave(我现在大多数都是初学者,但现在已经掌握了emacs的快捷方式).当我按照这里的建议尝试run-octave时,我收到了消息.

搜索文件,没有这样的文件或目录,八度

免责声明:我正在使用Windows Vista.Octave在c:\ Octave中...... emacs的默认目录是 c:\ users\username \

我将其添加到_emacs文件中:

(autoload'octave-mode"octave-mod"nil t)

    (setq auto-mode-alist
            (cons '("\\.m$" . octave-mode) auto-mode-alist))
Run Code Online (Sandbox Code Playgroud)

(autoload'run-octave"octave-inf"nil t)

有关如何告诉emacs八度音程的提示吗?

感谢您提前帮助,Massagran

directory emacs customization octave

1
推荐指数
1
解决办法
2100
查看次数