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

}

}

asp.net连接LDAP数据,并从LDAP中取出相关数据(1)的更多相关文章

  1. 从JSON数据中取出相关数据

    参考: http://www.cnblogs.com/shuilangyizu/p/6019561.html JSON数据如下: { "total": 1, "rows& ...

  2. (26)ASP.NET Core EF保存(基本保存、保存相关数据、级联删除、使用事务)

    1.简介 每个上下文实例都有一个ChangeTracker,它负责跟踪需要写入数据库的更改.更改实体类的实例时,这些更改会记录在ChangeTracker中,然后在调用SaveChanges时会被写入 ...

  3. 大数据系列-CDH环境中SOLR入数据

    1       创建集合 SSH远程连接到安装了SOLR的CDH节点. 运行solrctl  instancedir  --generate  /solr/test/GX_SH_TL_TGRYXX_2 ...

  4. for循环中进行联网请求数据、for循环中进行异步数据操作,数据排序错乱问题解决;

    for循环中进行联网请求数据,由于网络请求是异步的,第一个网络请求还没有回调,第二次第三次以及后续的网络请求又已经发出去了,有可能后续的网络请求会先回调:这时我们接收到的数据的排序就会错乱:怎么才能让 ...

  5. 利用excel数据透视表实现快速统计相关数据

    昨天ytkah在做数据报表时需要做一些具体统计数字:公司每天都有人申请铅笔.笔记本等一些文具用品,现在想要统计每天申请铅笔多少支.笔记本多少本,如下图所示,这个要如何实现呢? excel数据透视表怎么 ...

  6. [python]mysql数据缓存到redis中 取出时候编码问题

    描述: 一个web服务,原先的业务逻辑是把mysql查询的结果缓存在redis中一个小时,加快请求的响应. 现在有个问题就是根据请求的指定的编码返回对应编码的response. 首先是要修改响应的bo ...

  7. 【记录】T-SQL 分组排序中取出最新数据

    示例 Product 表结构: 示例 Product 表数据: 想要的效果是,以 GroupName 字段分组,取出分组中通过 Sort 降序最新的数据,通过示例数据,可以推算出结果数据的 ID 应该 ...

  8. [Tips]ASP.NET MVC 发布到服务器后Model中属性相关的Attribute失效

    Asp.net MVC4 开发的项目,发布到真实环境环境后Model中的一个属性设置的了Attribute,但是这些Attribute都失效. 经过对比和坚持代码发现控制长度的Attribute使用错 ...

  9. sqoop导入数据到hive表中的相关操作

    1.使用sqoop创建表并且指定对应的hive表中的字段的数据类型,同时指定该表的分区字段名称 sqoop create-hive-table --connect "jdbc:oracle: ...

随机推荐

  1. Linux运维常见问题解决集锦【转】

    作为linux运维,多多少少会碰见这样那样的问题或故障,用点心,平时多注意积累,水平肯定越来越高. 下面就是常见问题解决集锦:   1.shell脚本不执行 问题:某天研发某同事找我说帮他看看他写的s ...

  2. rocketmq 记

    Rocketmq选型 Rocket是一个专业的队列服务,性能优于Rabbitmq,优势是性能和并发,源于Kafka的扩展版,增强了数据的可靠性. Rocketmq的队列类型 普通队列,广播队列.顺序队 ...

  3. 短信API——短信验证码

    简介 短信服务(Short Message Service.SMS)是指通过调用短信发送API,将指定短信内容发送给指定手机用户. 阿里云短信服务 阿里云短信服务产品介绍:https://www.al ...

  4. 使用angluar-cli的ng g component home指令出现的错误

    Error: ELOOP: too many symbolic links encountered, stat '/Users/zzy/angular/taskmgr/node_modules/@an ...

  5. python基础(5)---整型、字符串、列表、元组、字典内置方法和文件操作介绍

    对于python而言,一切事物都是对象,对象是基于类创建的,对象继承了类的属性,方法等特性 1.int 首先,我们来查看下int包含了哪些函数 # python3.x dir(int) # ['__a ...

  6. 我所遇到的C++连接问题汇总

    http://blog.sina.com.cn/s/blog_7caa399301017k1e.html 1:无法打开kernel32.lib 针对不同版本的VS,lib库所在的地方都不一样,所以首先 ...

  7. 洛谷 P2077 红绿灯 题解

    题目传送门 这道题一秒一秒的扫描一定会超时,所以就用一种O(N)的算法. #include<bits/stdc++.h> using namespace std; ],b[],c[],x= ...

  8. spring-cloud-sleuth+zipkin追踪服务实现(二)

    1. 简述 在上一节<spring-cloud-sleuth+zipkin追踪服务实现(一)>中,我们使用microservice-zipkin-server.microservice-z ...

  9. IEEEXtreme 10.0 - Counting Molecules

    这是 meelo 原创的 IEEEXtreme极限编程大赛题解 Xtreme 10.0 - Counting Molecules 题目来源 第10届IEEE极限编程大赛 https://www.hac ...

  10. zookeeper的简单使用

    前言 最近项目中要使用基于zookeeper的集中配置管理系统,而对于zookeeper仅在当初使用阿里开源分布式服务调用框架dubbo时简单的了解一下.本 文的主要目的,调用zkclient (ma ...