C#实现AD域验证登录(一)
前言
最近有个客户要求域用户验证登录功能,即用户在登录时既可以使用数据库里的用户,也可以使用域服务器上的域用户和密码登录。
域的简单介绍
下面列出了域的几个主要概念:
AD的全称是Active Directory:
域(Domain):
1)域是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后
2)两个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理,以及相互通信和数据传输
域控制器(DC):
域控制器就是一台服务器,负责每一台联入网络的电脑和用户的验证工作。
组织单元(OU)
用户名服务器名(CN)
域服务器的搭建,创建域用户,计算机加入域
这里我使用windows server 2012 r2 搭建域服务器。
第一步:添加角色功能=>安装'Active Directory域服务',接着一路下一步,安装完即可。
注:最好使用Administrator来安装,要不可能会因为没有目录权限而安装失败。
第二步:配置服务器的ip地址
接着添加角色功能=>安装'DNS服务器',因为我用的是公司的内网,所以这里是192.168打头的局域网,你们可以用自己服务器的外网地址.,这个ip将作为访问
域服务器的地址,之后写代码会用到。
注:如果你的域控制器在虚拟机上,需要设置你的虚拟机网络连接方式为桥接模式,虚拟机处于无网状态,外部无法访问。
第三步:开始配置域服务
成功安装之后在,如上图所示会有一个黄色三角提示标,点开选择将此服务器提升为域控制器,进入Active Directory域服务配置向导。
选择“添加新林”,并键入根域名"test.cn",一直下一步都使用默认的配置,在安装之前系统会进行先决条件的检查,如果报错则根据错误去解决,警告不予理会。
安装完成后,服务器会重启。
第四步:创建域用户及
在域下可以创建用户,组织单位,联系人等。
如上图所示我在域名为test.cn的域下添加了某某集团,销售部,技术部,客服部四个组织单位(OU),并且在每个组织单位下都创建了一个用户,以后会写代码读取某某集团下所有的用户,windows出于安全的考虑,域用户的密码只能修改,不能获取。
第五步:加入到域中
我试验用的是win7的电脑,
右键我的电脑=>属性=>高级系统设置=>计算机名页签=>计算机名或域更改,进入这个页面后,你的电脑应该属于一个工作组,这里隶属于我们选择域,
并输入test.cn,完事点确定,不出意外肯定会报这个错误。
出现这个问题大概有两个原因:
1)ping下你的域控制器ip地址:在cmd下输入: ping 192.168.40.82
如图所示,我收到了来自192.168.40.82的回复,说明域控服务器的网络是没问题的,反之则有问题。
2)DNS解析问题
要加入域的这台电脑的DNS必须是域控制器的ip
更改完DNS,再试一试,成功的弹出了这个窗口
这个用户名与密码,就是域用户及其密码,你可以翻看一下上面的图,我在某某集团->客服部下新建了一个域用户,叫赵四,下图是详细信息,
用户名使用zhaosi,密码是你自己设定的
大功告成,你的电脑已经加入到域里了。下一篇就开始写代码了!