NetCore Identityserver4 客户端配置

准备工作,添加 Nuget 包

NuGet\Install-Package Microsoft.AspNetCore.Authentication.JwtBearer -Version 7.0.5

NuGet\Install-Package IdentityServer4.AccessTokenValidation

 

 

1.客户端模式

       var client = new HttpClient();

            var response = client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest
            {
                Address = "http://localhost:5000/connect/token",
                ClientId = "client",
                ClientSecret = "secret",
                Scope = "api"
            }).Result;
            Console.WriteLine("=============================Token==============================");

            Console.WriteLine(response.AccessToken ?? response.Error);

            Console.WriteLine("=============================Token==============================");
            // 调用API
            client.SetBearerToken(response.AccessToken);

            var responses = client.GetAsync("http://localhost:5001/weatherforecast/get").Result;
            if (response.IsError)
            {
                Console.WriteLine(response.HttpStatusCode);
            }
            else
            {
                Console.WriteLine("=============================服务返回值==============================");
                var content = responses.Content.ReadAsStringAsync().Result;
               
                Console.WriteLine(content);
            }
            Console.WriteLine("Hello World!");
            Console.ReadKey();

2.密码模式

        var client = new HttpClient();

            var response = client.RequestPasswordTokenAsync(new PasswordTokenRequest
            {
                Address = "http://localhost:5000/connect/token",
                ClientId = "apiClientPassword",
                ClientSecret = "apiSecret",
                Scope = "secretapi",
                UserName="123",
                Password="123"
                
            }).Result;
            Console.WriteLine("=============================Token==============================");

            Console.WriteLine(response.AccessToken ?? response.Error);

            Console.WriteLine("=============================Token==============================");
            // 调用API
            client.SetBearerToken(response.AccessToken);

            var responses = client.GetAsync("http://localhost:5001/weatherforecast/get").Result;
            if (response.IsError)
            {
                Console.WriteLine(response.HttpStatusCode);
            }
            else
            {
                Console.WriteLine("=============================服务返回值==============================");
                var content = responses.Content.ReadAsStringAsync().Result;

                Console.WriteLine(content);
            }
            Console.WriteLine("Hello World!");
            Console.ReadKey();

 3.刷新refresh_token

        var client = new HttpClient();

            var response = client.RequestPasswordTokenAsync(new PasswordTokenRequest
            {
                Address = "http://localhost:5000/connect/token",
                ClientId = "apiClientPassword",
                ClientSecret = "apiSecret",
                Scope = "secretapi",
                UserName="123",
                Password="123"
                
            }).Result;
            Console.WriteLine("=============================Token==============================");

            Console.WriteLine(response.AccessToken ?? response.Error);

            Console.WriteLine("=============================Token==============================");
            // 调用API
            client.SetBearerToken(response.AccessToken);

            var responses = client.GetAsync("http://localhost:5001/weatherforecast/get").Result;
            if (response.IsError)
            {
                Console.WriteLine(response.HttpStatusCode);
            }
            else
            {
                Console.WriteLine("=============================服务返回值==============================");
                var content = responses.Content.ReadAsStringAsync().Result;

                Console.WriteLine(content);
            }
            Console.WriteLine("Hello World!");
            Console.ReadKey();

 

posted @ 2024-01-25 14:49  microsoft-zhcn  阅读(66)  评论(0)    收藏  举报