asp.net-core – 无法从Client访问IdentityServer4 doc示例中的U
我正在测试IdentityServer4,浏览文档以了解有关OAuth2,OpenId Connect和基于声明的身份验证的更多信息,所有这些都是我的新手.但是,一些示例代码表现得很奇怪,我无法弄清楚为什么……
因此,根据我的理解,当获得访问用户数据的权限时,客户端可以访问UserInfo端点,其包含诸如声明等的数据. 在IdentityServer4中甚至还有一个设置 GetClaimsFromUserInfoEndpoint 文档建议我们将其设置为true. 所以我遵循IdentityServer4启动指南,一切都运行良好,直到一个点. This Quickstart包含提供的示例代码,虽然我假设我遗漏了一些明显的东西并且看不到代码. 基于正在运行的服务器的openId Configuration页面,userinfo端点位于 所以我在我的客户端应用程序上编写了以下代码: public async Task<IActionResult> GetData() { var accessToken = HttpContext.Authentication.GetTokenAsync("access_token").Result; HttpClient client = new HttpClient(); client.SetBearerToken(accessToken); var userInfo = await client.GetStringAsync("http://localhost:5000/connect/userinfo"); return Content(userInfo); } 在这里,我知道GetTokenAsync(“access_token”)应该像连接到API的客户端应用程序在示例项目中的其他位置一样使用.但是,我得到的响应再次是IdentityServer的布局页面和登录提示. 知道我的错误是什么以及如何访问UserInfo端点? 编辑:删除线程阻塞,这样我就不会向陌生人展示可耻的测试代码 好的,事实证明这个代码应该有一个简化的版本,即: UserInfoClient uic = new UserInfoClient("http://localhost:5000",idToken); var result = await uic.GetAsync(); return Content(JsonConvert.SerializeObject(result.Claims)); 然而,问题仍然存在,即使UserInfoClient中的封装代码也会遇到“无用户端点数据,只是示例网站的布局”的问题. 解决方法
回答可能已经很晚了,但对于那些仍然磕磕绊绊的人来说,试试这个—
var accessToken = await HttpContext.Authentication.GetTokenAsync("access_token"); var client = new HttpClient(); client.SetBearerToken(accessToken); var userInfoClient = new UserInfoClient("http://localhost:5000/connect/userinfo"); var response = await userInfoClient.GetAsync(accessToken); var claims = response.Claims; 您还可以在客户端应用上获取声明列表,例如 – var claims = HttpContext.User.Claims.ToList(); 没有调用端点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC – 无法绑定数组以查看模型
- .net – 用Linkedin登录
- 何时在ASP.NET管道中初始化会话状态
- asp.net – ASP .NET MVC 3.会话过期太快了
- .NET Core多平台开发体验[4]: Docker
- asp.net – 将HyperLinkField设置为Javascript Url
- asp.net – 在MVC3中共享区域之间的控制器和视图
- asp.net – X509Certificate2 – 系统找不到指定的路径
- asp.net – 存储字符串数组在appSettings?
- 如果没有授权,如何将用户重定向到ASP.NET页面?
- asp.net-mvc – ASP.NET MVC – 模型可以有业务逻
- asp.net-mvc – 如何在IIS 5.1上部署MVC App?
- asp.net 将一个图片以二进制值的形式存入Xml文件
- asp.net – 外键在VS2012 RC中未被识别
- selectlist – asp.net MVC 4.0下拉列表中的选定
- asp.net-mvc-3 – 以下列方式对ASP.NET MVC代码进
- asp.net – 所有PartialView的自定义ActionResul
- 如何计算asp.net服务器应用程序中的会话
- asp.net-web-api – Net Web API – 如何在Get上
- asp.net-mvc – SignInManager.PasswordSignInAs