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();
}
}
asp.net连接LDAP数据,并从LDAP中取出相关数据(1)的更多相关文章
- 从JSON数据中取出相关数据
参考: http://www.cnblogs.com/shuilangyizu/p/6019561.html JSON数据如下: { "total": 1, "rows& ...
- (26)ASP.NET Core EF保存(基本保存、保存相关数据、级联删除、使用事务)
1.简介 每个上下文实例都有一个ChangeTracker,它负责跟踪需要写入数据库的更改.更改实体类的实例时,这些更改会记录在ChangeTracker中,然后在调用SaveChanges时会被写入 ...
- 大数据系列-CDH环境中SOLR入数据
1 创建集合 SSH远程连接到安装了SOLR的CDH节点. 运行solrctl instancedir --generate /solr/test/GX_SH_TL_TGRYXX_2 ...
- for循环中进行联网请求数据、for循环中进行异步数据操作,数据排序错乱问题解决;
for循环中进行联网请求数据,由于网络请求是异步的,第一个网络请求还没有回调,第二次第三次以及后续的网络请求又已经发出去了,有可能后续的网络请求会先回调:这时我们接收到的数据的排序就会错乱:怎么才能让 ...
- 利用excel数据透视表实现快速统计相关数据
昨天ytkah在做数据报表时需要做一些具体统计数字:公司每天都有人申请铅笔.笔记本等一些文具用品,现在想要统计每天申请铅笔多少支.笔记本多少本,如下图所示,这个要如何实现呢? excel数据透视表怎么 ...
- [python]mysql数据缓存到redis中 取出时候编码问题
描述: 一个web服务,原先的业务逻辑是把mysql查询的结果缓存在redis中一个小时,加快请求的响应. 现在有个问题就是根据请求的指定的编码返回对应编码的response. 首先是要修改响应的bo ...
- 【记录】T-SQL 分组排序中取出最新数据
示例 Product 表结构: 示例 Product 表数据: 想要的效果是,以 GroupName 字段分组,取出分组中通过 Sort 降序最新的数据,通过示例数据,可以推算出结果数据的 ID 应该 ...
- [Tips]ASP.NET MVC 发布到服务器后Model中属性相关的Attribute失效
Asp.net MVC4 开发的项目,发布到真实环境环境后Model中的一个属性设置的了Attribute,但是这些Attribute都失效. 经过对比和坚持代码发现控制长度的Attribute使用错 ...
- sqoop导入数据到hive表中的相关操作
1.使用sqoop创建表并且指定对应的hive表中的字段的数据类型,同时指定该表的分区字段名称 sqoop create-hive-table --connect "jdbc:oracle: ...
随机推荐
- 用C#实现对MSSqlServer数据库的增删改查---DAL层
说明:本人完成的工作是对传感器--超声波物位计进行硬件集成,上位机通过串口接收传感器数据并将其存到数据库中:在DAL层实现对数据库的增删改查,其中包含两个数据表分别是WaterLevelSet表和Wa ...
- react native系列 - 从零开始构建
从零开始构建第一步,当然是从hello world开始,第一课我们没什么代码都不写,只用生成的代码来打包apk.为什么一开始就要学会打包,因为如果连打包都不会,以后做好了也没用.学会了打包,才能让我们 ...
- linux脚本学习之路-在suse10环境中生存指定大小指定文件名的压缩文件
#!/bin/bash#-------------------------------------------------------------------------------# Name: ...
- php 全文搜索解决方法
全套解决方案 xunsearch 一.安装编译工具 yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-dev ...
- python 面试
知识总结 面试(一)
- POJ 2513 Colored Sticks(Tire+欧拉回(通)路判断)
题目链接:http://poj.org/problem?id=2513 题目大意:你有好多根棍子,这些棍子的两端分都别涂了一种颜色.请问你手中的这些棍子能否互相拼接,从而形成一条直线呢? 两根棍子只有 ...
- 基于layui+cropper.js实现上传图片的裁剪功能
最近因项目需求,需要在上传图片的时候先对图片裁剪,然后在上传,所以就有了本文的出现. 开始正文之前,要提一下这个图片的裁剪:图片的裁剪,有前端裁剪,也可以后端裁剪 前端的裁剪我知道的可以分为这么两种: ...
- **CodeIgniter通过hook的方式实现简单的权限控制
根据自己的实际情况,需要两个文件,一个是权限控制类,Acl,另外一个是权限配置的文件acl.php放在了config这个目录下. Acl这个类放在了application/hook/acl.php.通 ...
- Linux下进程信息/proc/pid/status的深入分析
https://blog.csdn.net/beckdon/article/details/48491909
- 【PAT】1003. 我要通过!(20)
1003. 我要通过!(20) “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. ...