|
我用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("失败");
}
}
|
|
| 20分 |
可以么?
我也坐等答案 我理解,你的应用程序在S3机器上,你想在S3上登录U2,但是肯定会被LDAP服务器拒绝的 如果S3是服务器,U1,U2分别在其它机子上登录计算机,然后到S3服务器SSO认证,倒是可以的 |
| 20分 |
听起来很坑爹
|
|
初听是觉得不靠谱,不然那还设置让你登录指定电脑干嘛!只是具客户说有很多系统弄过的。
其实我想是否可以在登录验证的时候,我就把用户U2登录服务器增加个S3,这样U2就可以登录S3了。 请问怎么用代码实现U2可以登录S3服务器? |
|
|
如此坑爹的需求,最后还是客户大领导参与,客户自行解决。
|
|