在选择AD登录时,其实可以直接选择 Windows 授权,不过因为有些网站需要的是LDAP获取信息进行授权,而非直接依赖Web Server自带的Windows 授权功能。  当然如果使用的是Azure AD/企业账号登录时,直接在ASP.NET Core创建项目时选择就好了。

来个ABC:

1.新建一个ASP.NET Core项目

2.Nuget引用dependencies / 修改```project.json```

Novell.Directory.Ldap.NETStandard

Microsoft.AspNetCore.Authentication.Cookies

版本如下:

"Novell.Directory.Ldap.NETStandard": "2.3.5",

"Microsoft.AspNetCore.Authentication.Cookies": "1.1.0"  本文的AD登录使用的是第三方的

```Novell.Directory.Ldap.NETStandard``` 进行的LDAP操作(还没有看这个LDAP的库是否有安全性问题,如果有需要修改或更换)

3.建立一个LDAP操作的工具类

代码在下面链接中,就不单独贴了,基本上就2个方法:

Register是获取基本配置信息的

Validate是来验证用户名密码的

https://github.com/chsword/aspnet-core-ad-authentication/blob/master/src/Demo/LDAPUtil.cs

4.在applicationSettings.json中添加基本的域配置

"LDAPServer": "192.168.1.1",//域服务器

"LDAPPort": 389,//端口,一般默认就是这个

"CookieName": "testcookiename",//使用Cookie登录的Cookie的Key

"BindDN": "CN=DoWebUser,CN=Users",//用来获取LDAP的信息用户的用户名

"BindPassword": "!DoWebUserPassword",//用来获取LDAP的信息的用户的密码,即DoWebUser的密码

"LDAPBaseDC": "DC=aspnet,DC=com",//域的DC

5.Startup.cs中修改

Startup方法中:

LDAPUtil.Register(Configuration);  ConfigureServices 方法中:

services.AddAuthorization(options =>{});  Configure方法中:

app.UseCookieAuthentication(new CookieAuthenticationOptions()

{

AuthenticationScheme = Configuration.GetValue("CookieName"),

LoginPath = new PathString("/Account/Login/"),

AccessDeniedPath = new PathString("/Account/Login/"),

AutomaticAuthenticate = true,

AutomaticChallenge = true

});  6.AccountController中添加登录和注销的Action

登录的页面:

[AllowAnonymous]

public IActionResult Login()

{

return View();

}  登录的Post页面:

[HttpPost]

[AllowAnonymous]

public async Task Login(string u, string p)

{

if (LDAPUtil.Validate(u, p))

{

var identity = new ClaimsIdentity(new MyIdentity(u));//这个MyIdentity只是一个祼的IIdentity的实现的类

var principal = new ClaimsPrincipal(identity);

await HttpContext.Authentication.SignInAsync(LDAPUtil.CookieName, principal);

return RedirectToAction("Index", "Home");

}

return View();

}  注销的页面:

[Authorize]

public async Task Logout()

{

await HttpContext.Authentication.SignOutAsync(LDAPUtil.CookieName);

return RedirectToAction("Index", "Home");

}  Demo

https://github.com/chsword/aspnet-core-ad-authentication

引用

https://github.com/dsbenghe/Novell.Directory.Ldap.NETStandard

https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.Cookies/

AD域账户登录mysql_ASP.NET Core AD 域登录相关推荐

  1. windows server2016创建AD域账户并登录

    上篇介绍了Windows Server2016下安装配置AD域,查看文章请点这里 接下来介绍创建AD域账户并登录域账户的流程步骤 创建域账户 1)右键AD服务器,选择Active Directory管 ...

  2. 域用户和计算机上解锁用户的账户,AD域账户锁定时间

    尊敬的客户,您好! 感谢您的回复. 一.定义: AD中的其它系统基于AD 的ldap 认证,需要域账号进行认证,这类账号叫"服务账号"? >>这类账号就是普通的域用户账 ...

  3. 域用户指定计算机,什么是AD域,如何设置AD域用户仅登录到指定的计算机

    什么是AD域? 简单理解:Active Directory域内的directory database(目录数据库)是被用来存储用户账户.计算机账户.打印机和共享文件夹等对象,而提供目录服务的组件就是A ...

  4. 【AAD Connect】01:AAD Connect把本地AD账户同步到Office365(AD域账户迁移)

    前言 现在很多企业都会遇到把本地AD账号同步到Office365上,接下来就和大家一起了解一下,如果通过AAD Connect来进行同步操作 [AAD Connect]01:AAD Connect把本 ...

  5. 域控锁定计算机和用户,AD域账户锁定时间

    尊敬的客户,您好! 感谢您的回复. 一.定义: AD中的其它系统基于AD 的ldap 认证,需要域账号进行认证,这类账号叫"服务账号"? >>这类账号就是普通的域用户账 ...

  6. 关于AD域账户和组的管理技巧

    以下操作均在Windows Server 2008 R2系统中实现,客户端也是使用window 7来模拟,和实际中客户端可能会有所不同): 很多企业都会用到域环境来实现管理,域的实际应用非常广泛.下面 ...

  7. 【AD】破解WindowsServer2008R2 AD域控目录还原模式密码及域管理员账号密码

    (本文部分内容来源于网络,假设没有备用域管理员.) 一:知道域管理员密码,忘记目录模式还原密码 目录模式还原密码和之前的系统一样,保存在c:\windows\system32\config\sam内. ...

  8. AD域建设管理(四)| AD域实践(win server2019 RemoteApp前端修改与美化

    AD域建设管理(四)| AD域实践(win server2019 RemoteApp前端修改与美化 0. debug需要的配置 1. 文字的修改 2. 图片的修改 3. 前端代码的修改 3.1. 帮助 ...

  9. AD环境部署文件服务器2012,Windows_server_2012部署AD域及辅域环境.doc

    实用文案 标准文档 部署Windows server 2012 AD 实验环境: 操作系统 角色 IP地址 主机名 Windows server 2012 主域服务器 0 AD01 Windows s ...

最新文章

  1. Linux Kernel TCP/IP Stack — L7 Layer — Application Socket I/O 接口类型
  2. jQuery的AJAX
  3. 聚类分析在用户行为中的实例_看完这篇,你还敢说不懂聚类分析?
  4. 深度学习数据集制作_深度学习时代的数据驱动建模之探讨
  5. 《Ext JS权威指南》节选:树的动态加载及节点维护
  6. access更新查询非汉族加分_计算机二级Access:如何创建更新查询
  7. CSS border 属性及用border画各种图形
  8. 《CRAFT:Character Region Awareness for Text Detection》论文笔记
  9. 大数据之ZooKeeper数据类型和节点操作
  10. BT.656、PAL、NTSC标准并行数据结构
  11. JavaScript - 将 Allegro 坐标文件转为嘉立创坐标文件(CSV 格式)的工具
  12. 插画人物着色教程,如何为动漫插图人物添加颜色?
  13. Linux:NFS服务器
  14. openEuler 知:repo
  15. 工业组态DIAView自定义图库80个
  16. matlab中stem的用法
  17. Java高级程序员面试题
  18. 大周告诉你,为什么加入中视频计划后,播放量反而还变少了?
  19. office 部署安装
  20. ShaderWeaver使用教程-火焰制作

热门文章

  1. C#题目及答案(1)
  2. window服务器开站点(不通用)
  3. 初学Spring Boot
  4. WORD列表缩进的文本起始点
  5. centos7-安装mysql5.6.36
  6. Sublime text 入门学习资源篇及其基本使用方法
  7. MapInfo开发心得——控件篇
  8. 图tp delDataById问题
  9. Android属性动画进阶用法
  10. 关于ping命令的工作原理