asp.net的core ad域登录过程怎么实现-亚博电竞手机版
asp.net的core ad域登录过程怎么实现
本文小编为大家详细介绍“asp.net的coread域登录过程怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“asp.net的coread域登录过程怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
在选择ad登录时,其实可以直接选择 windows 授权,不过因为有些网站需要的是ldap获取信息进行授权,而非直接依赖web server自带的windows 授权功能。
当然如果使用的是azure ad/企业账号登录时,直接在asp.net core创建项目时选择就好了。
来个abc:
新建一个asp.net core项目
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的库是否有安全性问题,如果有需要修改或更换)
建立一个ldap操作的工具类
代码在下面链接中,就不单独贴了,基本上就2个方法:
register是获取基本配置信息的
validate是来验证用户名密码的
usingsystem;usingmicrosoft.extensions.configuration;usingnovell.directory.ldap;namespacedemo{publicclassldaputil{publicstaticstringhost{get;privateset;}publicstaticstringbinddn{get;privateset;}publicstaticstringbindpassword{get;privateset;}publicstaticintport{get;privateset;}publicstaticstringbasedc{get;privateset;}publicstaticstringcookiename{get;privateset;}publicstaticvoidregister(iconfigurationrootconfiguration){host=configuration.getvalue
在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
startup.cs中修改
startup方法中:
ldaputil.register(configuration);
configureservices 方法中:
services.addauthorization(options =>{});
configure方法中:
app.usecookieauthentication(newcookieauthenticationoptions(){authenticationscheme=configuration.getvalue
accountcontroller中添加登录和注销的action
登录的页面:
[allowanonymous]publiciactionresultlogin(){returnview();}
登录的post页面:
[httppost][allowanonymous]publicasynctask
注销的页面:
[authorize]publicasynctask
读到这里,这篇“asp.net的coread域登录过程怎么实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注恰卡编程网行业资讯频道。