• 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();

                        }

                    }

    Top
    收藏
    关注
    评论
  • 相关阅读:
    wordpress 自己制作子主题 child theme
    wordpress 主题开发
    python的曲线平滑工具,及python画一条线中包含不同粗细不同颜色的画线方法
    openfire 使用已有的数据库作为用户认证数据库 Custom Database Integration Guide
    How to store scaling parameters for later use
    在android上跑 keras 或 tensorflow 模型
    Win10更新搜狗输入法后重启输入密码蓝屏
    Audition CC2019 MME设备内部错误怎么解决!
    数据库优化解决方案
    微信小程序文本如何换行
  • 原文地址:https://www.cnblogs.com/alanjl/p/3708567.html
Copyright © 2020-2023  润新知