登陆的时候是WINDOWS集成登陆,现在想要取AD中的数据。
用的方法:
DirectoryEntry entry = new DirectoryEntry("LDAP://域名",域内任一帐户名","password" );
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = "(&(objectClass=user)(cn=" + user.Name + "))"; //搜索适配器
mySearcher.PropertiesToLoad.Add("userPrincipalName");//添加自己需要找的属性
mySearcher.PropertiesToLoad.Add("department");
mySearcher.PropertiesToLoad.Add("mail");
mySearcher.PropertiesToLoad.Add("title");
var result = mySearcher.FindOne(); //找到自己需要的一个
如上的代码是完全能够实现的。
那么问题来了,因为windows已经集成登陆过,现在的这个账户密码我是写死在代码里的(无论谁登陆都是用我自己的域内账号来访问AD)。我想知道不写这个密码怎么去访问AD?直接去了username和password在自己创建的console程序里好使,但是放在asp.net上就不好使了。
有没有大神帮忙回答下怎么解决,是要换方法吗?
有看过网上说是double-hop的问题,但是我只是在开发一个sharepoint portal上的feature而已,没有权限取改登陆方式,验证方式什么的
------解决思路----------------------
试试开启user profile服务,然后从里面获取用户信息
------解决思路----------------------
访问域需要有相应的授权啊
按霖雨说的用UserProfile同步吧,然后读SharePoint上的信息