linq使用法

http://blog.csdn.net/qq_15117745/article/details/45749359

上星期被要求去项目支援,丫的到月份了,人都跳光了

还得先学习,LDAP??  一个集团的人员管理系统,70几万人几十个应用服务的SSO单点关联操作,好像很牛的样子。。。

参考文档:

1.http://baike.baidu.com/link?url=qlh7cwhGpdML3mrWt9an8WFkaYSpSspLzEAEV8v30nh9Y91Zc_RmwX8_RqWiu6ekGM98osTB9Cz1suKfdNnYjK

2.http://blog.163.com/[email protected]/blog/static/2549919720147532914371/

3.http://blog.sina.com.cn/s/blog_72ee04a40100p0ce.html

一、LDAP简介

首先LDAP是轻量目录访问协议。

LDAP目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌握LDAP目录树这个概念了。

都是节点控制,跟我们通用的数据形式有很大却别。

一直有疑问为什么用LDAP?  后来才知道是因为读写速度,构架跟我说LDAP的读写比例是10:1,读取速度是可取之处。方便人员管理。

大多数LDAP目录用OU从逻辑上把数据分开来。表示公司内部的机构:销售部、财务部,等等。

现在LDAP还保留ou=这样的命名规则,但是扩展了分类的范围,可以分类为:ou=people, ou=groups, ou=devices,等等。

定制对象群例如:

你可以用LDAP存储各种类型的数据对象,只要这些对象可以用属性来表示,下面这些是可以在LDAP中存储的一些信息:

l 员工信息:员工的姓名、登录名、口令、员工号、他的经理的登录名,邮件服务器,等等。

[html] view plain copy

  1. <span style="background-color: rgb(255, 255, 255);">LDAP目录树是这样的:
  2. dc=foobar, dc=com
  3. ou=customers
  4. ou=asia
  5. ou=europe
  6. ou=usa
  7. ou=employees
  8. ou=rooms
  9. ou=groups
  10. ou=assets-mgmt
  11. ou=nisgroups
  12. ou=recipes</span>

二、搭建LDAP服务器
主要参考(1)linux杂谈(十一):LDAP服务器的搭建,地址为:http://www.2cto.com/os/201404/296572.html

(2)RHEL6配置简单LDAP服务器,基于TLS加密和NFS的用户家目录自动挂载,地址为:http://blog.sina.com.cn/s/blog_64aac6750101gwst.html

我们需要两台在同一个网段能够通信的主机或者虚拟机。本次测试的两台机器均为RedHat 6.4(其他的版本可能配置方法与此有些出入)
1.第一个是服务端,我们首先要安装LDAP服务器:RedHat 6.4的ISO文件中有这个openldap-servers包

2.把配置文件的模板拷贝到配置目录上:

3.删除掉没有用的配置文件lapd.conf(注:删除schema会出错,本次测试保留,下图有所出入)

4.修改配置文件权限和用户:

5.编辑配置文件,修改一下几处:
(1)TLS开头加密的那几行注释掉;

(2)这个部分注释掉:

(3)这些做如下修改:

要非常注意的是:rootpw一定要在这行的开头,不能有空格,否则是不生效的!!!

secret是LDAP的明文密码

也可以修改成加密的密码,方法如下:

(4)然后重启sldap服务:

6.虽然服务已经配置好了,但是我们还没有创建要共享的用户,下面我们用脚本创建100个用户:


执行用户创建过程,但是因为是shell编写的脚本,执行过程会比较缓慢,耐性等等,你可以在/etc/passwd文件中查看创建进度。

我们可以看到100个新用户已经创建成功了:

但是有一个问题,这些用户的书写格式是无法直接导入到LDAP服务器上的,所以我们一定要采用格式转换工具来转变格式:
migrationtools是一个格式转换工具,我们先来安装它:

安装完以后我们跳转到它的目录下,发现有很多可执行脚本用来约束格式的:

在migrate_common.ph中修改一下几项:

然后把基本的导入模型进行设置:分为两个部分,产生base.ldif和修改base.ldif:

因为我们只设置它的用户和组,所有只留下这两个部分,其他的全部删除:

把base.ldif转移到/ldapuser目录下:

下面这两个操作是最关键的,我们要把共享的用户和组的信息从passwd和group中截取出来:

然后把这些用户和组的信息转换成可以放到LDAP服务器上的格式:
转换用户:

转换组:

先导入基本模板,然后导入用户和组信息:下图中最后的命令中/data/user.ldif好像是错误的,去掉/data/,直接用user.ldif,另外本次测试中下面的命令是在/ldapuser下执行的
如果出现错误:
ldap_bind: Invalid credentials (49)
就表示你要么给出了错误的"cn="条目,要么给出了错误的密码



完成后重启slapd服务并刷新火墙。

至此,没有安全密钥的LDAP服务端就配置完成了,我们使用另外一台机子的服务端对其进行访问,并且切换用户:


写入服务端的IP:

好了!!最激动人心的时候到了,我们切换用户到myldapuser1下,这个用户在客户端的机子上是没有的,但是现在却可以登录。

说明服务端的用户共享是成功的,可以被其他机子访问。而且最大的优点是:我们可以只更改服务端的用户和组信息就可以完成对其他客户端的影响了。非常的实用方便。这个只是LDAP服务的一个功能。以后遇到了会更深入的了解。
注:这个服务是RHCA阶段的配置,如果感觉第一次比较吃力的话,多配几次,总结成文档,对LDAP的了解就会加深。

由于上述配置没有LDAP用户的主目录,因此可以实现基于NFS的LDAP用户主目录

1) 在LDAP服务器上 配置nfs服务器

如果不是on则远程用户无权限进入自己的目录。

2) 配LDAP客户端。必须有第一节的目录,即:/ldapuser,其它可以没有!

如果不能自动mount,可在配置好LDAP服务器后重启,

或者可执行:#mount -t nfs 192.168.2.102:/ldapuser /ldapuser -o nolock

#ls /ldapuser应显示LDAP服务器/ldapuser的内容

另外,关于NFS服务器配置,可参见  Linux NFS服务器的安装与配置

3) 测试登录,有家目录了!

用GUI界面查看LDAP用户

最好是:cd /var/www/html/目录,再下载phpldapadmin-1.2.2.tgz (版本要新点的,不要下错啊!否则可能造成无法使用)

然后在客户机上打开浏览器http://192.168.0.111/myldap访问LDAP。如下: 

登录的时候:DN框输入:cn=Manager,dc=example,dc=com,输入密码。

登录成功!列出目录用户

每次重启LDAP服务器后应执行以下命令:

[[email protected] ~]# exportfs -r

[[email protected]LDAPSERVER ~]# /etc/rc.d/init.d/nfs start

[[email protected] ~]# service slapd restart

[[email protected] ~]# iptables -F

另外要强调的是,客户机的启动要在LDAP服务器完全配置好并运行上述命令后启动,否则有可能不能自动挂载

最后,非常感谢原作者的热心分享!!

时间: 2024-08-11 05:44:09

linq使用法的相关文章

常用LINQ关键字用法汇总

背景 传统上,针对数据的查询都以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持.此外,还需要针对每种数据源学习一种不同的查询语言:SQL 数据库.XML 文档.各种 Web 服务等等. LINQ 使查询成为 C# 中的一流语言构造. 可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询. 注意事项 版本需求:.NET Framework 3.5 或更高版本 查询对象:SQL Server 数据库.XML 文档.ADO.NET 数据集以及支持 IEnumerabl

AJAX--XMLHttpRequest五步使用法

传统浏览方式和AJAX方式的不同 多数Web应用程序都使用请求/响应模型从服务器上获得完整的HTML页面.常常是点击一个按钮,等待服务器相应,在点击另一个按钮,然后在等待,这样一个反复的过程. 而AJAX是一种创建交互式网页的网页开发技术,其中XMLHttpRequest是核心的内容,它能够为页面中的javascript脚本提供特定的通信方式,从而使页面的javascript脚本和服务器之间形成动态交互的效果,XMLHTTPRequest的最大的优点是页面内的javascript脚本可以不用刷新

走入asp.net mvc不归路:[6]linq常见用法

asp.net mvc结合linq,先不说性能问题,对于增删查改的操作还是相当方便的.以下我们就来介绍一下linq在asp.net mvc的Controller中的常见用法. 1 首先来看看整个数据表,共有3个表,要访问这个数据库,得有一个代理,这个代理就是edmx文件中继承类DbContext的AllTestEntities 2 实体代理,可以直接在Controller中声明,并且数据库中对应的表,可以无缝对接:使用时,声明一个变量db,然后使用时,要访问相应表或视图,可以直接使用db.Dom

LINQ的用法

本文基于.NET Framework 2.0编写 本文PDF下载 推荐大家下载本文的PDF进行阅读,可以方便的使用书签来阅读各个方法,而且代码中的关键字是高亮显示的. 转载请注明出处. 一.投影操作符 1. Select Select操作符对单个序列或集合中的值进行投影.下面的示例中使用select从序列中返回Employee表的所有列: using (NorthwindDataContext db=new NorthwindDataContext()) { //查询语法 var query =

Ajax学习(三)——XMLHttpRequest对象的五步使用法

    Ajax的核心技术是XMLHttpRequest对象,它可以在不向服务器提交整个页面的情况下,实现局部更新网页.通过这个对象,Ajax可以像桌面应用程序那样只与服务器进行数据层的交换,而不必每次都刷新界面,也不必每次将数据处理的工作都交给服务器来做.这样既减轻了服务器负担又提高了响应速度,还缩短了用户的等待时间.通常一个Ajax的实现过程有五步,下面我们以上篇博客中的小实例为例来逐步学习. 1.建立XMLHttpRequest对象. IE浏览器将XMLHttpRequest实现为一个Ac

linq一般用法

最一般的用法 1 var rows = 2 from c in dataTrue.AsEnumerable() 3 from t in dataPre.AsEnumerable() 4 where t[0].ToString().StartsWith(c[1].ToString()) 5 select new 6 { 7 ID = c[0], 8 dayTime = this.StrDateConvertDateToString(c[1].ToString()), 9 10 value = c[

Tinyxml简单使用法

1.概要介绍一下: 尝试了tinyxml,rapidxml,libxml2等3中第3方库,前两者相对较为轻量级,libxml2非常完善,强大. 这是网上总结出来的优缺点: 1.tinyxml当节点内容的空而使用GetText()方法时候会出错 2.rapidxml编码问题不是特别好 3.libxml2对内存释放要求较高,否则时常遇到core dump. TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译.这个解析库的模型通过解析XML文件,然后在

LINQ 简单用法【1】

LINQ:Language INtegrated Query,语言集成查询. 以下内容演示如何利用LINQ进行增加,修改,删除和查询操作,针对数据库. 首先创建Linq Class. 添加数据库信息,直接Add一个Connection, 输入服务器和登录ID,测试连接成功. 现在可以看到数据库里面的信息了,比如Table. 把需要查询的Table直接拖到界面上来, 好了,现在我们开始写代码进行增删改查: 1.查询 private void btnSelect_Click(object sende

【c#基础】Linq操作符用法说明:

1:筛选 Where :使用where子句,可以合并多个表达式.例如:找出赢得至少15场比赛的美国和英国赛车手 var racers = from r in Formulal.GetChampions() where r.Wins > 15 && (r.Country == "USA" || r.Country == "UK") select r; foreach (var r in racers) { Console.WriteLine($&