参照Hunter的ABP-Zero模块中用户管理部分。

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

  • 添加MyLdapAuthenticationSource.cs及MyLdapSettings.cs

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

  MyLdapAuthenticationSource.cs

public  class MyLdapAuthenticationSource : LdapAuthenticationSource<Tenant, User>{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<bool> GetIsEnabled(int? tenantId){return true;}public async Task<ContextType> GetContextType(int? tenantId){return ContextType.Domain;}public async Task<string> GetContainer(int? tenantId){return Container;}public async Task<string> GetDomain(int? tenantId){return DomainName;}public async Task<string> GetUserName(int? tenantId){return UserName;}public async Task<string> 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<IAbpZeroLdapModuleConfig, AbpZeroLdapModuleConfig>();IocManager.Register<ILdapSettings, MyLdapSettings>(); //change default setting sourceConfiguration.Modules.ZeroLdap().Enable(typeof(MyLdapAuthenticationSource));

  • 重载认证逻辑

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

  

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

ABP实战--集成Ladp/AD认证相关推荐

  1. Video : 将使用AD认证的SharePoint网站配置为表单方式登录

    SharePoint网站默认是使用Active Directory集成认证,但如果是用于Internet场景,那么由于难以为访问用户建立AD帐号,解决方法通常是将SharePoint网站配置成使用Fo ...

  2. SpringBoot集成 Windows2012 AD 认证服务

    目录 1.应用背景 2.Windows2012 AD 服务安装及验证是否成功 2.1.Microsoft Windows Server 2012 Ad域搭建 2.2.安装完毕后如何验证是否成功 3.S ...

  3. 实战部署MySQL用户认证的Postfix邮件系统(3)

    实战部署Postfix+MySQL+Dovecot+Postfixadmin+Extmail邮件系统(3) -----构建开源邮件系统系列 如果您对本系列文章感兴趣,可以通过点击以下链接查看全文: 点 ...

  4. Abp VNext 集成sharding-core 分表分库

    ShardingCore 易用.简单.高性能.普适性,是一款扩展针对efcore生态下的分表分库的扩展解决方案,支持efcore2+的所有版本,支持efcore2+的所有数据库.支持自定义路由.动态路 ...

  5. Openldap 整合windows AD认证

    Openldap 整合windows AD认证 https://blog.51cto.com/907832555/2124930?tt_from=weixin&utm_source=weixi ...

  6. springboot集成mongoDB 异常认证

    springboot集成mongoDB 异常认证 参考文章: (1)springboot集成mongoDB 异常认证 (2)https://www.cnblogs.com/mh-study/p/980 ...

  7. 【云原生 | Kubernetes 实战】18、K8s 安全实战篇之 RBAC 认证授权(上)

    目录 一.k8s 安全管理:认证.授权.准入控制概述 1.1 认证 认证基本介绍 授权基本介绍 准入控制基本介绍 为什么需要准入控制器呢? k8s 客户端访问 apiserver 的几种认证方式 ku ...

  8. chap0x10 实战fail2ban防止Basic认证暴力破解和SSH口令爆破

    chap0x10 实战fail2ban防止Basic认证暴力破解和SSH口令爆破 实验背景 实验环境 kali ip 169.254.227.181 物理机 (虚拟网卡 ip :169.254.227 ...

  9. android App 集成 facebook 第三方认证登录

    今天公司一个项目要集成第三方的认证登录,第一次做这种第三方登录,而且因为大陆访问不了 facebook,所以花了比较长的时间才实现功能.其中也有一些需要注意的地方,记录一下,也跟大家一起交流. 一.f ...

最新文章

  1. mkdir命令使用详解
  2. sparkContext之一:sparkContext的初始化分析
  3. assign 可以修饰对象吗
  4. vlc延时处理-跳帧
  5. python入门练习题-python基础知识练习题一
  6. 002_图表容器及大小
  7. MVC4 下DropDownList使用方法(转)
  8. 大数据和hadoop的一些基础知识
  9. 《博德之门 3》究竟有多「DnD」?
  10. 动态添加模板列及保持页面状态
  11. php 判断同时存在英文跟数字,php判断输入是否是纯数字,英文,汉字的方法
  12. 免费的React课程,通过构建聊天应用程序来提高您的React JS技能
  13. [Java] 蓝桥杯ALGO-11 算法训练 瓷砖铺放
  14. mysql弱口令msf_Metasploit扫描Mysql弱口令
  15. 某些函数原型及其用法
  16. JUC主要包含哪些功能?
  17. 翻译:YOLOv5 新版本——改进与评估
  18. 手机usb计算机无法连接,手机usb连不上电脑怎么办实际解决
  19. SQLSERVER走起微信公众帐号已经开通搜狗微信搜索
  20. 计算机双工模式,100M 全双工、100M 半双工、10M全双工几种模式分别测试

热门文章

  1. javascript根据单元格内容动态合并相同内容单元格
  2. 【《Linus Torvalds自传-Linux OS 之父》摘录】
  3. java升序排列数组_java 数组升序排列
  4. Intellij idea 2020设置经典样式(背景为黑色Darcula)
  5. eclipse 使用maven打包 包含非java文件时报错
  6. 英文字体“磅”(Point)和中文字号的关系
  7. dwcs6连接不上access数据库_在DW中实现与ACCESS数据库连接方法
  8. Ubuntu下的终端多标签切换快捷键
  9. 狼的处世十大哲理(想养狼的人必应)
  10. Nginx 配置问题 server directive is not allowed here in /etc/nginx/nginx.conf:69