我用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服务器? |
|
如此坑爹的需求,最后还是客户大领导参与,客户自行解决。
|