首页 > Web开发 > 详细

AspNetCore 中使用 InentityServer4(2)

时间:2019-02-13 17:15:47      阅读:183      评论:0      收藏:0      [点我收藏+]
原文:AspNetCore 中使用 InentityServer4(2)

基于上一篇文章 实现对IdnetityServer4 服务的使用

1:添加接口解决方案,并且使接口受认证服务的保护:

首先在解决方案中添加Api项目如下图所示:

技术分享图片

在API项目中添加Nuget 引用 如下图所示:

Install-Package IdentityServer4.AccessTokenValidation -Version 2.6.0

技术分享图片

添加此包的作用是,在API中添加验证服务,使Api 受验证服务的保护,如果消费者在调用此受保护的接口的时候,传入的令牌没有通过验证将不允许进行访问

在Startup 中添加身份认证服务如下图所示:

技术分享图片

以上有关验证服务我们就配置好了,但是如果我们现在进行项目启动并且调用其中的方法时会发现和平常并没有什么区别:如图演示

技术分享图片

是因为我们只是进行了配置并没有进行使用:使用如下:

引用:using Microsoft.AspNetCore.Authorization 这是AspNetCore的认证命命空间

我们在Api 方法Get()上进行使用如下 注意在Get(int Id)方法上我们并没有进行使用项目启动后我们尝试调用结果如下:

技术分享图片

 

这是未使用验证的方法Get(int Id):调用成功

技术分享图片

下面是使用验证的方法:调用失败未授权

 技术分享图片

如果说我们想让整个控制器中的所有方法都使用,在控制器上方进行使用就行:如下图

技术分享图片

 上面的演示结果都是失败的,下面我们加上密钥去访问一下:结果如下图所示

技术分享图片

密钥是用客户端代码请求来的,上面的演示结果都是使用Postman 进行调用演示:演示一下客户端使用

2:添加客户端解决方案,并请求密钥完成调用:

以控制台进行演示一下:

新建控制台:并且引用IdentityModel包 如下图所示:

技术分享图片

因为IdentityModel客户端只提供了异步等待请求的方式去请求认证服务器,所以 我们首先更改一下控制台的属性步骤如下

点击打开控制台属性 —》点开 高级 如图

技术分享图片

修改高级语言版本为7.1以上, 如图:注意: 7.1以上才支持 控制台入口方法 Main 支持异步等待操作

技术分享图片

环境好了之后下面我们请求一下,认证服务,并且演示模拟调用接口操作,代码如下:

技术分享图片

 结果如图:

 技术分享图片

 

 有不足之处 希望大家指出相互学习,

                                  本文原创:转载请注明出处 谢谢!

 

AspNetCore 中使用 InentityServer4(2)

原文:https://www.cnblogs.com/lonelyxmas/p/10370309.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!