日期:2015-03-14 浏览次数:3608 次
续上篇博文《LDAP(轻量目录访问协议)基于C#的System.DirectoryServices进行开发》
通过上次的资料查阅已经开发出用域账号密码登陆网站的系统了
但是遗留一个问题:通过网站修改密码同步到域账户去
我用的IIS7,首先要给网站配置特定用户即管理员,赋予权限后才可以访问LDAP
看网上修改密码用的两种方法
1、 //取得DirectoryEntry传入用户名和密码
string _path= "LDAP://domain";
DirectorySearcher search = new DirectorySearcher(_path);
filter = search.Filter;
DirectoryEntry child = new DirectoryEntry(filter, EmailTextbox.Text.Trim(),
OldPasswordTextbox.Text.Trim());
child.Invoke("SetPassword", NewPasswordTextbox.Text.Trim());
child.CommitChanges();
2、首先添加引用->COM引用/ Active DS Type Library
//也就是不用上面的Invoke,直接调用底层方法
ActiveDs.IADsUser adsUser = (ActiveDs.IADsUser)child.NativeObject;
adsUser.SetPassword(NewPasswordTextbox.Text.Trim());
adsUser.AccountDisabled = false;
child.CommitChanges();
但这两种方法我都试了,就是出现“拒绝访问”的错误!
于是在第一种方式的基础上,把标蓝的那句改成:
child.Invoke("ChangePassword", OldPasswordTextbox.Text.Trim(), NewPasswordTextbox.Text.Trim());
就可以修改成功了!