根据当前登录域账号 获取AD用户姓名和所在OU目录

#region 根据当前登录域账号 获取AD用户姓名和所在OU目录
/// <summary>
/// 根据当前登录域账号 获取AD用户姓名和所在OU目录 返回域用户是否存在
/// </summary>
/// <param name="searchUser">要搜索的当前用户名</param>
/// <param name="paths">out返回该用户所在OU目录</param>
/// <param name="userName">out 返回该用户的姓名</param>
/// <returns>搜索域用户是否存在</returns>
public static bool GetADUserNameAndPaths(string searchUser, out List<string> paths, out string userName)
{
bool isExite = false;//该域用户是否 存在。。。
DataContextProvider.loger.Info(string.Format(">>>>>>>>>>>>>>>>>>>>>>>>>>>获取当前域用户信息log>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"));
DirectoryEntry entry = null;
string name = "未知";
List<string> directorys = null;
try
{
//读取配置文件...连接登录域服务器
//"LDAP://10.2.17.*" 域服务器地址
//登录名
//密码
DataContextProvider.loger.Info(string.Format("域服务地址:{0}、、域账号:{1}、、域密码{2}、、", ConfigHelper.DomainAddress, ConfigHelper.DomainAccount, ConfigHelper.DomainPassWord));
using (entry=new DirectoryEntry(ConfigHelper.DomainAddress, ConfigHelper.DomainAccount, ConfigHelper.DomainPassWord, AuthenticationTypes.Secure))
{
if (entry != null)
{
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(&(|(objectClass=user)(objectClass=organizationalUnit)(objectClass=group))(|(cn=" + searchUser + ")(dn=" + searchUser + ")(sAMAccountName=" + searchUser + ")))");
// ("(&(objectClass=organizationalUnit)(OU=电力技术部))");
SearchResult searchResult = mySearcher.FindOne();
if (searchResult != null)
{
isExite = true;//该域用户 存在。。。
string path = searchResult.Path;
DataContextProvider.loger.Info(string.Format("获取当前登录域账号的OUPath>>>>>>>>>>>>>>>>>>>>>>>>>>>{0}", path)); string[] splits = path.Split(new char[] { ',' });
for (int i = splits.Count() - 1; i >= 0; i--)
{
if (splits[i].Contains("OU="))
{
if (directorys==null)
{
directorys = new List<string>();
}
directorys.Add(splits[i].Substring(splits[i].IndexOf('=') + 1));
}
}
string xing = (string)(searchResult.Properties["sn"].Count>0?searchResult.Properties["sn"][0]:"");
string ming = (string)(searchResult.Properties["givenname"].Count>0?searchResult.Properties["givenname"][0]:"");
name = (xing + ming);
DataContextProvider.loger.Info(string.Format("获取当前登录域账号的姓名>>>>>>>属性>>>>>name>>>>>>>>>>>>>>>{0}", name));
}
}
} }
catch (Exception ex)
{
DataContextProvider.loger.Error(" 获取AD用户姓名和所在OU目录 发生异常:: " + ex.ToString());
}
//finally
//{
// //释放资源
// entry.Close();
// entry.Dispose();
//}
paths = directorys;
userName = name; return isExite;
} #endregion

参考:
http://www.cnblogs.com/jamsewang/archive/2011/11/03/2234555.html
http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C
http://82831221.blog.163.com/blog/static/4716957820118162045169/
根据当前登录域账号 获取AD用户姓名和所在OU目录的更多相关文章
- 获取Ad用户信息
private]; } dt.Rows.Add(dr); } return dt; ...
- ASP.NET MVC 操作AD 获取域服务器当前用户姓名和OU信息
#region 根据当前登录域账号 获取AD用户姓名和所在OU目录 /// <summary> /// 根据当前登录域账号 获取AD用户姓名和所在OU目录 /// </summary ...
- 批量移动AD用户到指定OU
原文链接:http://blog.51cto.com/shubao/1346469 作为域管理员,在日常工作中使用ADUC(AD用户和计算机)工具在图形界面中进行账号管理操作可谓是家常便饭了.然而一个 ...
- PowerShell命令批量添加、导出AD用户
导入单个AD用户命令 New-ADUser -Name "周八" -Surname "周" -GivenName "八"-SamAccoun ...
- JAVA 通过LDAP获取AD域用户及组织信息
因为工作需求近期做过一个从客户AD域获取数据实现单点登录的功能,在此整理分享. 前提:用户可能有很多系统的情况下,为了方便账号的统一管理使用AD域验证登录,所以不需要我们的系统登录,就需要获取用户的A ...
- 背水一战 Windows 10 (82) - 用户和账号: 获取用户的信息, 获取用户的同意
[源码下载] 背水一战 Windows 10 (82) - 用户和账号: 获取用户的信息, 获取用户的同意 作者:webabcd 介绍背水一战 Windows 10 之 用户和账号 获取用户的信息 获 ...
- C#获取AD域中计算机和用户的信息
如果你的计算机加入了某个AD域,则可以获取该域中所有的计算机和用户的信息. 所用程序集,需要.Net Framework 4. 添加程序集引用 System.DirectoryServices.Acc ...
- AD 域服务简介(二)- Java 获取 AD 域用户
博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 一.前言 先简单简单回顾上一篇 ...
- 使用腾讯开发平台获取QQ用户数据资料
<今天是七夕:祝大家七夕嗨皮,前可么么哒,后可啪啪啪> Tips:本篇博客将教你如何使用腾讯开发平台获取QQ用户资料 ----------------------------------- ...
随机推荐
- jvm在存储区域
当区域执行的数据 JVM存储器的管理分为几个时间之后的数据区的实施:程序计数器.JavaVM栈.本地方法栈.Java堆.方法区(包括常量池的实现). 程序计数器 较小的内存空间,能够看作是当前线 ...
- 2014年辛星Javascript解读第四节 流程控制语句
上一节我们介绍了函数,本小节我们介绍一下流程控制语句,对于不论什么一门编程语言来说,流程控制都是很重要的,也就是我们常说的顺序结构.选择结构和循环结构. ************选择结构******* ...
- 注解配置的Spring MVC
基于注解配置的Spring MVC 简单的HelloWorld实例应用 2.1 问题 使用注解的方式重构helloworld应用案例. 2.2 方案 1. @RequestMapping注解应用 ...
- JavaEE(7) - JMS消息事务和异常
1. 使用事务性Session为消息增加事务(NetBeans创建java project: TxSession) MessageSender.java package lee; import jav ...
- .net在arraylist用法
1.什么是ArrayListArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本号,它提供了例如以下一些优点: 动态的添加和降低元素 实现了ICollection和IL ...
- CodeIgniter入门——HelloWorld
原文:CodeIgniter入门--HelloWorld CodeIgniter(CI)是一套给PHP网站开发者使用的应用程序开发框架和工具包. 初次接触,来一个HelloWorld~~~ ^_^ 准 ...
- SRM 587 Div II L3:ThreeColorabilityEasyy
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12699 这道题目是第一次在比赛的时候做出来的,开始还想用bru ...
- 【android】ImageView的src和background以及两者之间的神奇的差异
一.ImageView中XML属性src和background的差别: background会依据ImageView组件给定的长宽进行拉伸.而src就存放的是原图的大小,不会进行拉伸.src是图片内容 ...
- 网络资源(1) - Hadoop视频
2014_08_23: hadoop03c_分布式文件系统HDFS http://v.youku.com/v_show/id_XNDgwNjg1OTY0.html?f=18604686 2014_08 ...
- 前端项目部署之Grunt
如果你的前端项目很小或都者项目不需要通过专门的运维同学走流水线上线部署的话,那么可以略过以下的繁文. ok,Let's go! 我们看看如何使用grunt来部署上线项目? 前端项目一般分为两种类型:T ...