#region 根据当前登录域账号 获取AD用户姓名和所在OU目录
/// <summary>
/// 根据当前登录域账号 获取AD用户姓名和所在OU目录
/// </summary>
/// <param name="searchUser">要搜索的当前用户名</param>
/// <param name="paths">out返回该用户所在OU目录</param>
/// <param name="userName">out 返回该用户的姓名</param>
private static void GetADUserNameAndPaths(string searchUser, out List<string> paths, out string userName)
{
DirectoryEntry entry = null;
string name = "*";
List<string> directorys = new List<string>();
try
{
//读取配置文件...连接登录域服务器
//"LDAP://10.2.17.*" 域服务器地址
//登录名
//密码
entry =// new DirectoryEntry("LDAP://10.2.17.*", "zhuanghao", "123456", AuthenticationTypes.Secure);
new DirectoryEntry("LDAP://10.2.17.*", "Administrator", "111aaa...", AuthenticationTypes.Secure);
if (entry != null)
{
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(&(objectClass=user)(anr=" + searchUser + "))");
// ("(&(objectClass=organizationalUnit)(OU=电力技术部))");
SearchResult searchResult = mySearcher.FindOne();
if (searchResult != null)
{
string path = searchResult.Path;
string[] splits = path.Split(new char[] { ',' });
for (int i = splits.Count() - 1; i >= 0; i--)
{
if (splits[i].Contains("CN="))
{
name = splits[i].Substring(splits[i].IndexOf('=') + 1);
}
if (splits[i].Contains("OU="))
{
directorys.Add(splits[i].Substring(splits[i].IndexOf('=') + 1));
}
}
//string xing = (string)searchResult.Properties["sn"][0];
//string ming = (string)searchResult.Properties["givenname"][0];
//string name = xing + ming;
}
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
//释放资源
entry.Close();
entry.Dispose();
}
paths = directorys;
userName = name;
} #endregion

参考:::::http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C#19

http://82831221.blog.163.com/blog/static/4716957820118162045169/

http://www.cnblogs.com/jamsewang/archive/2011/11/03/2234555.html

ASP.NET MVC 操作AD 获取域服务器当前用户姓名和OU信息的更多相关文章

  1. ASP.NET MVC 实现AJAX跨域请求方法《1》

    ASP.NET MVC 实现AJAX跨域请求的两种方法 通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据 ...

  2. ASP.NET MVC中设置跨域

    ASP.NET MVC中设置跨域 1.什么是跨域请求 js禁止向不是当前域名的网站发起一次ajax请求,即使成功respone了数据,但是你的js仍然会报错.这是JS的同源策略限制,JS控制的并不是我 ...

  3. js基础 js自执行函数、调用递归函数、圆括号运算符、函数声明的提升 js 布尔值 ASP.NET MVC中设置跨域

    js基础 目录 javascript基础 ESMAScript数据类型 DOM JS常用方法 回到顶部 javascript基础 常说的js包括三个部分:dom(文档document).bom(浏览器 ...

  4. ASP.NET MVC 实现 AJAX 跨域请求

    ASP.NET MVC 实现AJAX跨域请求的两种方法 和大家分享下Ajax 跨域的经验,之前也找了好多资料,但是都不行,后来看到个可行的修改了并测试下 果然OK了   希望对大家有所帮助! 通常发送 ...

  5. 使用ASP.NET MVC操作过滤器记录日志(转)

    使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_Filte ...

  6. [翻译] 使用ASP.NET MVC操作过滤器记录日志

    [翻译] 使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_ ...

  7. 【转载】ASP.NET MVC设置允许跨域访问

    默认情况下,浏览器端发送Ajax请求一般被禁止跨域访问,如A域名网站访问B域名网站的请求会被终止,在ASP.NET MVC项目中,我们可以配置相应的设置项,允许网站的接口跨域访问,主要需要设置Acce ...

  8. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

    这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是想通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...

  9. ASP.NET MVC 实现AJAX跨域请求的两种方法

    通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据的加载,例如Google. 在ASP.NET MVC 框 ...

随机推荐

  1. Jade的奇怪解析问题。

    如下的jade代码: span#span1 Span#span2   解析的时候span2总是变成span1的子元素.怎么解决? [解决方法] 用如下的代码就可以了. span#span1 |   s ...

  2. Python模拟登录wap版百度贴吧+自己主动回贴

    模拟登录的原理都差点儿相同.大致都是这样: 打开首页获取相关cookie: 提交登陆表单(即username与password). 确认是否登录成功. 假设想了解更具体的原理与相关知识,推荐到具体解释 ...

  3. STM8S AD转换

    //不说那么多了,直接上程序 void ADC1_DeInit(void) { ADC1->CSR = ADC1_CSR_RESET_VALUE; ADC1->CR1 = ADC1_CR1 ...

  4. 【CSWS2014 Summer School】大数据下的游戏营销模式革新-邓大付

    大数据下的游戏营销模式革新 邓大付博士腾讯专家工程师 Bio:毕业于华中科技大学,现任腾讯IEG运营部数据中心技术副总监,负责腾讯游戏的数据挖掘相关工作,包括有用户画像,推荐系统,基础算法研究等.主要 ...

  5. nm 命令 程序符号信息查看

    http://www.cnblogs.com/wangkangluo1/archive/2012/07/02/2572438.html 用途 显示关于对象文件.可执行文件以及对象文件库里的符号信息. ...

  6. [2014.5.13][Ubuntu] Ubuntu 14.04STL 出现NTFS分区无法訪问的问题

    5.12 为了给学生改论文,在UPC上登录了Windows 8.1,晚上正常关机.今日切换登陆Ubuntu 14.04分区,发现原来能够正常訪问的windows下的NTFS分区都被锁死.提演示样例如以 ...

  7. MySQL_Oracle_事物的隔离级别

    数据库会话的设置: 1:脏读 情景:A事物读取B事物修改了但是未提交的数据 问题:若B回滚了事物,A就读到了错误数据. 2:不可重复读 情景:A事物查询数据,B修改了数据,A又查询数据 问题:A事物前 ...

  8. openerp7.0接收邮件时别名区分大小写问题,以及处理非别名域邮件问题解决方法

    修改代码addons\mail\mail_thread.py #550 line #local_parts = [e.split('@')[0] for e in tools.email_split( ...

  9. 【Accountancy】资产

    1. 资产定义 资产是指企业过去的交易或事项形成的.由企业拥有或控制的.预期会给企业带来经济利益的资源. 2. 资产分类 2.1 货币资金 概念 货币资金是指企业生产经营过程中处于货币形态的资产,包括 ...

  10. ActiveMq C#客户端 消息队列的使用(存和取)

    1.准备工具 VS2013Apache.NMS.ActiveMQ-1.7.2-bin.zipapache-activemq-5.14.0-bin.zip 2.开始项目 VS2013新建一个C#控制台应 ...