最近项目上为了增强安全性的访问,原本是 ldap 访问的 ad 域,要升级成为 ldaps ,这里可能要向大家普及下概念如下:
LDAP(Light Directory Access Portocol),它是基于X.500标准的轻量级目录访问协议。
目录是一个为查询、浏览和搜索而优化的数据库,它成树状结构组织数据,类似文件目录一样。
目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生是用来查询的,就好象它的名字一样。
LDAP目录服务是由目录数据库和一套访问协议组成的系统。
我们知道跟了解概念之后,接下来,我们要用到的其实是 ldap 的登录功能,也就是所谓的域登录,基本上在各大项目上用的最多的就是这功能。
AD域登录其实就是为了避免多个系统,用户登录不同系统都要用不同的用户名密码来登录,其实就是方便用户的操作。
接下来,我们先来看下,ad域没启用 ssl 之前的代码如下:
domain:ldap.example.com
int port = 636; // LDAPS的默认端口 (注意这里升级要加上 636 端口)
LdapConnection connection = new LdapConnection(new LdapDirectoryIdentifier(ldapServer, port));
connection.SessionOptions.SecureSocketLayer = true; // 启用SSL
connection.SessionOptions.VerifyServerCertificate = (ldapCon, serverCertificate) => true;
connection.Credential = new NetworkCredential(username, password);
try
{
connection.Bind();
resultModel.Message = "AD域验证成功";
resultModel.Success = true;
Logger.Info("AD域验证成功" + "域登录 用户名:" + username + "密码:" + password);
}
catch (Exception ex)
{
resultModel.Message = "未找到域信息";
resultModel.Success = false;
Logger.Error("未找到域信息 错误信息" + ex.Message + " " + "域登录 用户名:" + username + "密码:" + password);
}
以上是自己的做为资深开发的一些个人经历,把这些经验分享给大家,希望以后大家在从事开发中,可以避免不必要的麻烦,跟浪费时间精力。
要是大家喜欢我的文章的话,可以在文章下留言或是联系我,共同进步,共同探讨开发的一些案例,促进彼此间的交流,分享一些日常的开发趣事。
非特殊说明,本博所有文章均为博主原创。
共有 0 条评论