首页 > 代码库 > asp.net连接LDAP数据,并从LDAP中取出相关数据(1)

asp.net连接LDAP数据,并从LDAP中取出相关数据(1)

 

                                                                    ASP.NET连接LDAP数据库的有关信息

一、封装在DAL层中的获取用户信息的函数

/// <summary>

       /// 按照用户Id查找用户信息

       /// </summary>

       /// <param name="userId"></param>

       /// <returns></returns>

       publicDirectoryEntry GetUser(string username)

       {

           string path = System.Configuration.ConfigurationManager.ConnectionStrings["path"].ConnectionString;

           string pname = System.Configuration.ConfigurationManager.ConnectionStrings["pname"].ConnectionString;

           string pwd = System.Configuration.ConfigurationManager.ConnectionStrings["pwd"].ConnectionString; 

// 3个连接数据库的信息写在配置文件里

           DirectoryEntry  deuser;  //定义变量

           try

           {

               DirectoryEntry de = newDirectoryEntry (path, pname, pwd, AuthenticationTypes.Secure);

               DirectorySearcher deSearch = newDirectorySearcher(de); //连接LDAP数据库

               deSearch.Filter = "(&(objectClass=userinfo)(LOGINNAME=" + username + "))";  //筛选比对

//上面这句话修改为:mySearcher.Filter = "(&(objectClass=userinfo)(&(LOGINNAME=" + txtUserId.Text + ")(LOGINPASSWORD=" + txtUserPwd.Text + ")))";//作为登录是用户帐号和密码认证

               deSearch.SearchScope = SearchScope.Subtree;

               SearchResult result = deSearch.FindOne(); //筛选比对得出一个结果,存储在result中

               if (result != null)

               {

                   deuser = result.GetDirectoryEntry(); //得到筛选结果,并赋值给deuser中

                   return deuser;

               }

               else

               {

                returnnull;

                }

             }

        catch(Exception ex)

        {            

           // LogManage.SaveInfo(ex.ToString());

            returnnull;

        }

二、配置文件信息

<connectionStrings>          

 <add name="path"

         connectionString="LDAP://192.168.1.1/OU=123,DC=123,DC=COM" />

           <add name="pname"

                   connectionString="123" />

           <add name="pwd"

                   connectionString="123" />

  </connectionStrings>

三、实现层

1、页面信息

用户id:(textbox框)

用户名称:(textbox框)
用户密码:(textbox框)
电子邮箱:(textbox框)
ButtonID="butquchu"(读取数据按钮)

2、事件函数代码

protectedvoid butquchu_Click(object sender, EventArgs e)

        {

            ldapDAO ld= newldapDAO ();

 

            string username = Session["LOGINNAME"].ToString(); //根据上一页的登录信息获取用户帐号,存储在session中。

            labname.Text = username;

            DirectoryEntry de = ld.GetUser(username); //调用ldapDAO中的获取用户信息函数

 

            if (de != null)

            {

                if (de != null)

                {

                    if (de.Properties["USERID"].Value != null)

                    {

                        txtuserid.Text = de.Properties["USERID"].Value.ToString();

                    }

                    if (de.Properties["LOGINNAME"].Value != null)

                    {

                        txtusername.Text = de.Properties["LOGINNAME"].Value.ToString();

                    }

                    if (de.Properties["LOGINPASSWORD"].Value != null)

                    {

                        txtpwd.Text = de.Properties["LOGINPASSWORD"].Value.ToString();

                    }

                    if (de.Properties["EMAIL"].Value != null)

                    {

                        txtmail.Text = de.Properties["EMAIL"].Value.ToString();

                    }

                }