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 支持异步等待操作
环境好了之后下面我们请求一下,认证服务,并且演示模拟调用接口操作,代码如下:
结果如图:
有不足之处 希望大家指出相互学习,
本文原创:转载请注明出处 谢谢!