AD域账户登录mysql_ASP.NET Core AD 域登录
在选择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 域登录相关推荐
- windows server2016创建AD域账户并登录
上篇介绍了Windows Server2016下安装配置AD域,查看文章请点这里 接下来介绍创建AD域账户并登录域账户的流程步骤 创建域账户 1)右键AD服务器,选择Active Directory管 ...
- 域用户和计算机上解锁用户的账户,AD域账户锁定时间
尊敬的客户,您好! 感谢您的回复. 一.定义: AD中的其它系统基于AD 的ldap 认证,需要域账号进行认证,这类账号叫"服务账号"? >>这类账号就是普通的域用户账 ...
- 域用户指定计算机,什么是AD域,如何设置AD域用户仅登录到指定的计算机
什么是AD域? 简单理解:Active Directory域内的directory database(目录数据库)是被用来存储用户账户.计算机账户.打印机和共享文件夹等对象,而提供目录服务的组件就是A ...
- 【AAD Connect】01:AAD Connect把本地AD账户同步到Office365(AD域账户迁移)
前言 现在很多企业都会遇到把本地AD账号同步到Office365上,接下来就和大家一起了解一下,如果通过AAD Connect来进行同步操作 [AAD Connect]01:AAD Connect把本 ...
- 域控锁定计算机和用户,AD域账户锁定时间
尊敬的客户,您好! 感谢您的回复. 一.定义: AD中的其它系统基于AD 的ldap 认证,需要域账号进行认证,这类账号叫"服务账号"? >>这类账号就是普通的域用户账 ...
- 关于AD域账户和组的管理技巧
以下操作均在Windows Server 2008 R2系统中实现,客户端也是使用window 7来模拟,和实际中客户端可能会有所不同): 很多企业都会用到域环境来实现管理,域的实际应用非常广泛.下面 ...
- 【AD】破解WindowsServer2008R2 AD域控目录还原模式密码及域管理员账号密码
(本文部分内容来源于网络,假设没有备用域管理员.) 一:知道域管理员密码,忘记目录模式还原密码 目录模式还原密码和之前的系统一样,保存在c:\windows\system32\config\sam内. ...
- AD域建设管理(四)| AD域实践(win server2019 RemoteApp前端修改与美化
AD域建设管理(四)| AD域实践(win server2019 RemoteApp前端修改与美化 0. debug需要的配置 1. 文字的修改 2. 图片的修改 3. 前端代码的修改 3.1. 帮助 ...
- AD环境部署文件服务器2012,Windows_server_2012部署AD域及辅域环境.doc
实用文案 标准文档 部署Windows server 2012 AD 实验环境: 操作系统 角色 IP地址 主机名 Windows server 2012 主域服务器 0 AD01 Windows s ...
最新文章
- Linux Kernel TCP/IP Stack — L7 Layer — Application Socket I/O 接口类型
- jQuery的AJAX
- 聚类分析在用户行为中的实例_看完这篇,你还敢说不懂聚类分析?
- 深度学习数据集制作_深度学习时代的数据驱动建模之探讨
- 《Ext JS权威指南》节选:树的动态加载及节点维护
- access更新查询非汉族加分_计算机二级Access:如何创建更新查询
- CSS border 属性及用border画各种图形
- 《CRAFT:Character Region Awareness for Text Detection》论文笔记
- 大数据之ZooKeeper数据类型和节点操作
- BT.656、PAL、NTSC标准并行数据结构
- JavaScript - 将 Allegro 坐标文件转为嘉立创坐标文件(CSV 格式)的工具
- 插画人物着色教程,如何为动漫插图人物添加颜色?
- Linux:NFS服务器
- openEuler 知:repo
- 工业组态DIAView自定义图库80个
- matlab中stem的用法
- Java高级程序员面试题
- 大周告诉你,为什么加入中视频计划后,播放量反而还变少了?
- office 部署安装
- ShaderWeaver使用教程-火焰制作