绑定DirectoryEntry对象通常有两种方法,一种是通过字符串(如通过ADsPath),一种是通过Guid(参见:http://msdn.microsoft.com/zh-cn/library/ms180842%28v=vs.80%29.aspx)。但是,通过Guid绑定时,需要指定目录服务器地址(除非绑定本地目录服务器),对于不指定目录服务器的情形就不适用。这个时候,可以通过objectGuid查找的方式获取DirectoryEntry对象。

        /// <summary>
/// 通过GUID获取目录对象
/// </summary>
/// <param name="deRoot"></param>
/// <param name="objectGUID"></param>
/// <returns></returns>
/// <example>GetDirectoryObjectByGUID(DirectoryEntry.Guid);</example>
public DirectoryEntry GetDirectoryObjectByGUID(DirectoryEntry deRoot,Guid objectGUID)
{
string queryGuid = Guid2OctetString(objectGUID);
DirectorySearcher searcher = new DirectorySearcher(deRoot, "(objectGUID=" + queryGuid + ")");
SearchResult sr = searcher.FindOne();
if (sr == null) return null;
return sr.GetDirectoryEntry();
}
 
        /// <summary>
/// 将GUID转换为16进制字符串
/// </summary>
/// <param name="objectGuid">Guid</param>
/// <returns></returns>
public static string Guid2OctetString(Guid objectGuid)
{
byte[] byteGuid = objectGuid.ToByteArray();
StringBuilder sb = new StringBuilder();
foreach (byte b in byteGuid)
{
sb.Append(@"\" + b.ToString("x2"));
}
return sb.ToString();
}
 

通过Guid获取DirectoryEntry对象的更多相关文章

  1. WebAPI中无法获取Session对象的解决办法

    在MVC的WebApi中默认是没有开启Session会话支持的.需要在Global中重写Init方法来指定会话需要支持的类型 public override void Init() { PostAut ...

  2. 《Entity Framework 6 Recipes》中文翻译系列 (45) ------ 第八章 POCO之获取原始对象与手工同步对象图和变化跟踪器

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 8-6  获取原始对象 问题 你正在使用POCO,想从数据库获取原始对象. 解决方案 ...

  3. js和jquery获取当前对象的子元素

    开发中经常遇到需要获取ul下的il对象,个人总结了js和jquery的方法. HTML片断: <ul class="box"> <li>子元素1</l ...

  4. 获取Graphics对象的方法

    在做自定义控件时或者GDI+的时候经常会遇到获取Graphics实例的问题.一般有三种获取方式 1.从Paint事件的参数中获取.窗体和许多控件都有一个Paint事件,有一个PaintEventArg ...

  5. (转)JS获取当前对象大小以及屏幕分辨率等

    原文 JS获取当前对象大小以及屏幕分辨率等   <script type="text/javascript">function getInfo(){       var ...

  6. Unity关于获取游戏对象

    我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能直接找到你,你也能直接找到我.我看很多人喜欢在类里面去保存GameObject对象.解决G ...

  7. 第三章 EnumUtil根据值获取枚举对象

    项目中使用枚举类的好处这里不再赘述,在使用枚举值时,通常需要根据值来获取枚举对象,下面介绍两种实现方案: 1.在枚举类中定义方法实现 首先给出如下性别枚举类: public enum SexEnum ...

  8. ajax获取json对象

    ajax获取json对象 ajax获取json数据,都是一个原理,设置response 的Content-Type:application/json,这样浏览器自动会解析为json对象 $result ...

  9. 福利->KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型

    我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型 ...

随机推荐

  1. SQL Server 数据库的维护(二)__触发器

    --维护数据库-- --触发器-- --概述: 触发器是一种特殊类型的存储过程,用来强制执行业务规则.在调用执上,触发器不能像存储过程那样可以由用户通过T-SQL语句直接调用,而是需要有数据库所发生的 ...

  2. 开启macbook win7触控屏右键

    开启macbook win7触控屏右键,如下图

  3. 在php里写sql查询需要注意的事情

    ---恢复内容开始--- 今天往php里写了一条sql查询, $sql = "select * from videos where vuser=".$u: $ret = mysql ...

  4. FIleText转换为JSONObject对象

    package com.beijxing.TestMain; import java.io.File; import java.io.IOException; import org.apache.co ...

  5. struts2的国际化文件在jsp中的引用

    struts.xml中的配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts ...

  6. div+css的第一个布局

    ---恢复内容开始--- 这个东西说难也不难,但也要详细思虑一番: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...

  7. libpng安装与配置(Win7+VS2010)

    一.下载 libpng:http://libmng.com/pub/png/libpng.html zlib:http://www.zlib.net/ IDE:VS2010 二.编译 将下载的两个zi ...

  8. oracle job的写法

    DECLAREX NUMBER;begin sys.dbms_job.submit(job => x, what => 'begindd_income_risk_control;end;' ...

  9. python之路——面向对象(基础篇)

    面向对象编程:类,对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" 来实现,所以,面向对象编程其实就是对 "类&quo ...

  10. 检查项目里是否有IDFA的方法

    检查项目里是否有IDFA的方法: 步骤:1.打开终端cd到要检查的文件的根目录. 2.执行下列语句:grep -r advertisingIdentifier . (别少了最后那个点号). 发现有ma ...