IdentityServer4笔记

//从元数据中发现终结点,查找IdentityServer(5000端口)
            var disco = DiscoveryClient.GetAsync("http://localhost:5000").Result;


            //向IdentityServer请求令牌
            var tokenClient = new TokenClient(disco.TokenEndpoint, "client", "secret");
            var tokenResponse = tokenClient.RequestClientCredentialsAsync("api1").Result;

            if (tokenResponse.IsError)
            {
                Console.WriteLine(tokenResponse.Error);
                return;
            }

            Console.WriteLine(tokenResponse.Json);

            //访问Api
            var client = new HttpClient();
            //把令牌添加进请求
            client.SetBearerToken(tokenResponse.AccessToken);

            var response = client.GetAsync("http://localhost:5001/identity").Result;
            if (!response.IsSuccessStatusCode)
            {
                Console.WriteLine(response.StatusCode);
            }
            else
            {
                var content = response.Content.ReadAsStringAsync().Result;
                Console.WriteLine(content);
            }
            Console.Read();
var client = new HttpClient();
            string key = "eyJhbGciOiJSUzI1NiIsImtpZCI6ImIwODUyMWFiNWE0ZTFiMmZiYjBiY2FkZGRkMTUxNjZjIiwidHlwIjoiSldUIn0.eyJuYmYiOjE1NjA4NDM5MTYsImV4cCI6MTU2MDg0NzUxNiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDAwIiwiYXVkIjpbImh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC9yZXNvdXJjZXMiLCJhcGkxIl0sImNsaWVudF9pZCI6ImNsaWVudCIsInNjb3BlIjpbImFwaTEiXX0.YPP2xcNTDuOXROHFQ2mkSLH35m6uBJmKYXgrRJDbrSsZ9PySjRXnK0DOBzqYMZfs89FD7ik5RmQeVPjzheeFqEzvYdHIV-8veXffUSToIOvf_5BB33Qdkk6XqziyQBNlb6hJQeQOC6QbORdf6J6IvdgzWUiVfKaZPnb-BCgy2lcM5eA5o97If4amaEc4trT9T4ifL7WJ8rLOxNMgDsbGzqsu2WjZeekFQdtnP4bP2GHGzYGxN0MKKCF8LcQ1VWwrkuYlYtfDIPYxzP72AOxtMEDetJHTiFSLn9D39f5_LY-8jY0nmCwG5TClor3Tv4P3PNpLih1YEFG4SWrjZPkQoA";


            HttpWebRequest request = WebRequest.Create("http://localhost:5001/identity") as HttpWebRequest;

            request.Method = "GET";

            var headers = request.Headers;
            headers["Authorization"] = "Bearer " + key; //传递进去认证Token
            request.Headers = headers;


            HttpWebResponse response;
            try
            {
                //获得响应流
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException ex)
            {
                response = null;
            }


            Stream s = response.GetResponseStream();
            StringBuilder str = new StringBuilder();
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
                StreamReader readStream = new StreamReader(s, encode);
                Char[] read = new Char[256];
                int count = readStream.Read(read, 0, 256);
                while (count > 0)
                {
                    str.Append(new String(read, 0, count));
                    count = readStream.Read(read, 0, 256);
                }
                s.Close();
                readStream.Close();
            }

            Console.WriteLine(str);

            Console.Read();

 

posted @ 2019-06-18 17:06  星星c#  阅读(649)  评论(0编辑  收藏  举报