Code Bye

AD域验证问题 (急急急)——高手在哪里

我用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服务器?

如此坑爹的需求,最后还是客户大领导参与,客户自行解决。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明AD域验证问题 (急急急)——高手在哪里