当前位置: 代码迷 >> C# >> AD域验证有关问题 (急)——高手在哪里
  详细解决方案

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

热度:33   发布时间:2016-05-05 03:53:29.0
AD域验证问题 (急急急)——高手在哪里
本帖最后由 gnolhh168 于 2014-09-18 20:15:59 编辑
我用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认证,倒是可以的
------解决思路----------------------
听起来很坑爹
  相关解决方案