15.oauth2 + oidc 实现 server部分
OAuth主要做授权。
OpenIdConnect简历在OAuth2.0基础之上的,相结合
客户端、授权中心、Resource Owner用户本身(资源的拥有者)、Resource Server
通过ProfileService把Cliams转换返回给客户端

这个代码里面已经包含了最新的登陆和注册

启动程序


在这个例子之上进行IdentityServer的开发。把MVC的注册和登陆变成一个单点登陆,把他的登陆信息返回给第三方

输入IdentityServer4,添加上最新的包引用




这时候需要一个config,创建一个config.cs的类,把之前写过的config拷贝过来

现在是个空的

之前代码拷贝过来,只保留一个Client

这里我们用隐式的流程,隐式模式和授权码的模式非常像

然后再定义ApiResource

再定义TestUser在这个命名空间下


claims先去掉,这里先不加

这几个都是config内获取的

这里还需要加IdentityResource

所以这里需要再新建一个方法返回IdentityResource的可枚举类型

openId、Profile、Email是IdentityServer测试的方法给我们提供的

把它添加到config的配置里面

最后在mvc的这里添加上IdentityServer()的中间件
这里的UseAuthentication我们去掉了

IdentityServer()的中间件

这样我们就把IdentityServer添加到我们的MVC程序里了
在Controller里面把逻辑实现
把原来登陆的逻辑去掉。
这里注释掉


注册的代码全部注释掉

这里注释

使用SignOutAsync来替代

改造登陆

users注入一下

修改这里的登陆的ViewModel,Emial修改为UserName

登陆页面view内也要绑定为UserName



登陆成功我们需要传一些参数过去。这样就通过IdentityServer4实现了登陆,并实现了跳转

这样我们登陆的逻辑就实现完了
15.oauth2 + oidc 实现 server部分的更多相关文章
- 【ASP.NET Core分布式项目实战】(二)oauth2 + oidc 实现 server部分
本博客根据http://video.jessetalk.cn/my/course/5视频整理(内容可能会有部分,推荐看源视频学习) 资料 我们基于之前的MvcCookieAuthSample来做开发 ...
- 16.oauth2 + oidc 实现 client部分
把授权和认证过的Server启动一下先 因为代码是之前的代码,所以有些代码需要清除一下 之类注释掉,因为这里暂时没有用到EFCode了 运行的时候发现一点错误 发现登陆的时候使用的RegisterVi ...
- 15-oauth2+oidc实现Server部分
1-我们使用之前项目的mvcCookieAuthSampe2进行改造 1.1 增加IdentityServer4 2-增加Config.cs文件,对IdentityServer提供相关的配置数据 u ...
- ASP.NET Core分布式项目实战
ASP.NET Core开发者成长路线图 asp.net core 官方文档 https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/ ...
- 【笔记目录1】ASP.NET Core分布式项目实战
当前标签: ASP.NET Core分布式项目实战 共2页: 1 2 下一页 35.Docker安装Mysql挂载Host Volume GASA 2019-06-20 22:02 阅读:51 评论 ...
- 使用OAuth Server PHP实现OAuth2服务
在现在的网络服务中,OAuth2.0服务已经很普遍了,无论是facebook或者微博的第三方登录,还是手机APP登录,都有很广泛的应用.它主要的目的如下:如果用户的照片在A网站,他想要在B网站使用A网 ...
- 使用 OAuth2-Server-php 在 Yii 框架上搭建 OAuth2 Server
原文转自 http://www.cnblogs.com/ldms/p/4565547.html Yii 有很多 extension 可以使用,在查看了 Yii 官网上提供的与 OAuth 相关的扩展后 ...
- 使用 OAuth2-Server-php 搭建 OAuth2 Server
Yii 有很多 extension 可以使用,在查看了 Yii 官网上提供的与 OAuth 相关的扩展后,发现了几个 OAuth2 的客户端扩展,但是并没有找到可以作为 OAuth2 Server 的 ...
- oauth2(转载http://www.rollosay.com/it/%E4%BD%BF%E7%94%A8OAuth-Server-PHP%E5%AE%9E%E7%8E%B0OAuth2%E6%9C%8D%E5%8A%A1)
http://www.rollosay.com/it/%E4%BD%BF%E7%94%A8OAuth-Server-PHP%E5%AE%9E%E7%8E%B0OAuth2%E6%9C%8D%E5%8A ...
随机推荐
- Swift中的switch 和 do while
switch后面的()能够省略 OC中的switch假设没有break就会穿透(依次运行),在Swift中不会穿透(可理解默认就有break) OC中入股要在case中定义变量,必要要加上{}确定作用 ...
- centos下保留python2安装python3
1. 安装依赖环境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline- ...
- 在Fedora25上轻松安装Cuda8
http://blog.csdn.net/u010158659/article/details/53592891 Cuda 8对于Pacal架构的英伟达新一代显卡(GTX 1070/1080/Tita ...
- Canvas学习笔记——弹动
如果有一根橡皮筋拴住一个小球,将小球拉开一定距离后释放,小球将会弹动.距离越远,橡皮筋对小球施加的外力越大,小球的加速度就越大.也就是说,小球的加速度与距离是成正比例关系的.这和缓动很相似,缓动是速度 ...
- php 获取当前页面url路径
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST'].""; # ...
- php把时间存入数据库为年月日时分秒类型
时间用now() $sql1 = "insert into registerip (name,logintime,ip,url) values ('1211121',now(),'127.0 ...
- MFC学习之对话框---对话框之间的domodle 数据传递
if(IDOK==data.DoModal()){tx->m_gao=data.m_he;tx->m_kuan=data.m_wi;tx->m_jiao=data.m_jiaoju; ...
- DuiLib笔记之Control常用属性
name 指定控件名称,同一窗口内必须唯一,类型:STRING float 用于指定控件是否使用绝对定位,或设置FloatPercent,类型:BOOL,默认值为false,格式:float=&quo ...
- linux环境下远程访问ftp
sftp ftpuser@127.0.0.1 使用sftp命令 ftpuser是用户名 127.0.0.1是目标ip 亲测好使.
- Hibernate ManyToOne Mappings 多对一关联映射
Hibernate ManyToOne Mappings 多对一关联映射 Hibernate框架的使用步骤: 1.创建Hibernate的配置文件(hibernate.cfg.xml)2.创建持久化类 ...