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();
分类:
IdentityServer
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?