我用C#的DirectoryEntry和DirectorySearcher实现AD域用户列表的获取和用户登录验证。
现在有这样的问题用户U1在AD域里面配置了可以登录所有电脑,而用户U2在AD域里面配置了只能登录S1,S2电脑。
现在应用程序在S3服务器上,因此U1能通过AD验证,但是U2无法通过AD验证。
请问怎么通过编码能够似的U2也能通过用户名+密码的AD验证。
我写的代码如下:
private void btnUserCheck_Click(object sender, EventArgs e)
{
DirectoryEntry myDE = new DirectoryEntry();
myDE.Path = "LDAP://192.168.2.244";
myDE.Username = "U1";
myDE.Password = "123456";
myDE.AuthenticationType = AuthenticationTypes.Secure;
string strOu = "OU=Shanghai, OU=UserAccount";
myDE.Children.Find(strOu);
DirectorySearcher mySearcher = new DirectorySearcher(myDE);
mySearcher.Filter = "(sAMAccountName=" + myDE.Username + ")";
try
{
SearchResult result = mySearcher.FindOne();
if (result != null)
{
MessageBox.Show("成功");
MessageBox.Show(result.Path.ToString());
}
}
catch
{
MessageBox.Show("失败");
}
}
------解决思路----------------------
可以么?
我也坐等答案
我理解,你的应用程序在S3机器上,你想在S3上登录U2,但是肯定会被LDAP服务器拒绝的
如果S3是服务器,U1,U2分别在其它机子上登录计算机,然后到S3服务器SSO认证,倒是可以的
------解决思路----------------------
听起来很坑爹