10-第三方ClientCredential模式调用

Posted qinzb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10-第三方ClientCredential模式调用相关的知识,希望对你有一定的参考价值。

1-新建.net core控制台应用程序

E:coding
etcoreIdentityServerSample>dotnet new console --name ThridPartDemo

2-使用nuget工具安装 IdentityModel

技术分享图片

3-编写API调用,说明http://localhost:5000是服务端, 5001是客户端,即提供资源端

 class Program
    {
        static void Main(string[] args)
        {
           var discovery =  DiscoveryClient.GetAsync("http://localhost:5000").Result;
           if(discovery.IsError){
               Console.WriteLine(discovery.Error);
           }
          Console.WriteLine(discovery.TokenEndpoint);
          TokenClient tokenClient = new TokenClient(discovery.TokenEndpoint,"client","secret");
          var tokenResponse = tokenClient.RequestClientCredentialsAsync("api").Result;
          if(tokenResponse.IsError){
              Console.WriteLine($"tokenResponse Error: {tokenResponse.Error}");
          }else{
              Console.WriteLine(tokenResponse.Json);
          }
           
           HttpClient httpClient = new HttpClient();
           httpClient.SetBearerToken(tokenResponse.AccessToken);
           var response = httpClient.GetAsync("http://localhost:5001/api/values").Result;

           if(response.IsSuccessStatusCode){
              Console.WriteLine(response.Content.ReadAsStringAsync().Result);
           }

           Console.ReadLine();
        }
    }

使用dotnet run运行后,结果如下

技术分享图片

 

以上是关于10-第三方ClientCredential模式调用的主要内容,如果未能解决你的问题,请参考以下文章

华为开发者选项怎么调

2018最新技术Java架构师高并发高性能高可用分布式集群电商缓存性能调优设计模式项目实战视频教程

设计模式-命令模式

如何保证提供数据的 aws lambda 调用者保持安全

被调用者分配被调用者释放

我的windows无法打开文件,运行了chkdsk后提示没有权限,必须调以提升模式运行