zoukankan      html  css  js  c++  java
  • 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 支持异步等待操作

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

     结果如图:

     

  • 相关阅读:
    51nod 1087 1 10 100 1000(找规律+递推+stl)
    51nod 1082 与7无关的数 (打表预处理)
    51 nod 1080 两个数的平方和
    1015 水仙花数(水题)
    51 nod 1003 阶乘后面0的数量
    51nod 1002 数塔取数问题
    51 nod 1001 数组中和等于K的数对
    51 nod 1081 子段求和
    51nod 1134 最长递增子序列 (O(nlogn)算法)
    51nod 1174 区间中最大的数(RMQ)
  • 原文地址:https://www.cnblogs.com/zxtceq/p/13916837.html
Copyright © 2011-2022 走看看