博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABP实战--集成Ladp/AD认证
阅读量:6167 次
发布时间:2019-06-21

本文共 2316 字,大约阅读时间需要 7 分钟。

  参照Hunter的中用户管理部分。

  由于我们公司的各系统基本都是AD帐号登录的,所以我们需扩展ABP的AuthenticationSource。

  • 添加MyLdapAuthenticationSource.cs及MyLdapSettings.cs

  Core层的Authorization目录下新建Ldap目录,并新建两个MyLdapAuthenticationSource.csMyLdapSettings.cs,代码如下:

  MyLdapAuthenticationSource.cs

public  class MyLdapAuthenticationSource : LdapAuthenticationSource
{ public MyLdapAuthenticationSource(ILdapSettings settings, IAbpZeroLdapModuleConfig ldapModuleConfig) : base(settings, ldapModuleConfig) { } }

 

  

  LdapAuthenticationSource的构造函数需要两个参数:ILdapSettings及IAbpZeroLdapModuleConfig,我们构造自己的MyLdapSettings:

  MyLdapSettings.cs

public class MyLdapSettings : ILdapSettings    {        private const string DomainName = "XXXX.com";        private const string Container = "OU=XXX,DC=XXXX,DC=com";        private const string UserName = "XXXX";        private const string Password = "XXXX";        private const string ADPath = "LDAP://XXXXX";        public async Task
GetIsEnabled(int? tenantId) { return true; } public async Task
GetContextType(int? tenantId) { return ContextType.Domain; } public async Task
GetContainer(int? tenantId) { return Container; } public async Task
GetDomain(int? tenantId) { return DomainName; } public async Task
GetUserName(int? tenantId) { return UserName; } public async Task
GetPassword(int? tenantId) { return Password; } }

  

  • 在CoreModule中启用

  这里ILdapSettings我们使用MyLdapSettings来注册,但是IAbpZeroLdapModuleConfig使用默认的即可。

[DependsOn(typeof(AbpZeroCoreModule))]    public class CeciCoreModule : AbpModule    {        public override void PreInitialize()        {            Configuration.Auditing.IsEnabledForAnonymousUsers = true;            IocManager.Register
(); IocManager.Register
(); //change default setting source Configuration.Modules.ZeroLdap().Enable(typeof(MyLdapAuthenticationSource));
  •  重载认证逻辑

  目前我们只使用了Ldap最简逻辑,如需要复杂逻辑(如从AD中获得用户部门职位等),需重载LdapAuthenticationSource的方法来自定义实现。

  

 

转载于:https://www.cnblogs.com/ceci/p/9263700.html

你可能感兴趣的文章
Linux下的内核测试工具——perf使用简介
查看>>
《从问题到程序:用Python学编程和计算》——2.3 内置函数和数学函数包
查看>>
《Photoshop修饰与合成专业技法》目录—导读
查看>>
《Metasploit渗透测试手册》—第1章1.10节分析数据库中存储的渗透测试结果
查看>>
《Adobe Acrobat XI经典教程》—第2课减小文件大小
查看>>
《数据库技术原理与应用教程》一第2章 数据库的基础知识
查看>>
QuaggaJS —— 纯 JavaScript 开发的条形码扫描
查看>>
在图片中加入噪点就能骗过 Google 最顶尖的图像识别 AI
查看>>
免费下载!业界首部安卓热修复宝典出炉,阿里技术大牛联袂推荐
查看>>
OpenID 关联认证提供 CoreOS dex
查看>>
《Node.js区块链开发》一2.2 信用,决定着利益转移的方向
查看>>
Speedy:来自京东的 Docker 镜像存储系统
查看>>
《动手玩转Arduino》——11.2 众多的Arduino板
查看>>
IBM Watson 进入癌症基因组分析市场
查看>>
在 Linux 中查看你的时区
查看>>
Linux集群和自动化维1.6 小结
查看>>
《OpenACC并行编程实战》—— 第1章 并行编程概览 1.1 加速器产品
查看>>
C语言OJ项目参考(2417) 字符串长度
查看>>
ajax的手写、封装和自定义设置
查看>>
class path resource [META-INF/xfire/services.xml] cannot be opened because it does not exist
查看>>