Boy*_*smo 2 asp.net-web-api single-page-application asp.net-core identityserver4
我正在尝试构建SPA Web应用程序+ IdentityServer4 + ASPNET Core + ASPNET Core身份。我遵循了Identityserver文档上的快速入门,它的确很棒。我对Quickstart与JS Client的Identity Server快速入门更感兴趣
我一直遵循,到目前为止一切顺利。现在,我向用户添加了一些字段和相关表,如下所示:
这是解决方案资源管理器
我想创建一个页面来显示我的用户及其相关的表/字段。(基本上,我的问题是,如何访问当前用户并公开供JS客户端使用的API)
我该如何实现?(以下所有描述的要点我只是在线阅读,并且不确定如何实现)
请指教。
的想法IdentityServer是分离用户身份的概念。简单来说,这意味着您web API不应该/将不能访问存储用户的数据库。
一切有关用户身份是nessaccary中web API应包含在access token被批准IdentityServer。(例如在声明中)
在您的示例中,您可以从中删除Points和Wallets字段ApplicaionUser并创建用于存储它们的附加表,如下所示:
public class UserInfo
{
public string UserSubject { get; set; }
public int Points { get; set; }
public ICollection<Wallet> Wallets { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果您需要与用户身份相关的内容,则可以从这样的声明中获取:
[Authorize]
public ActionResult SomeAction()
{
var identity = (ClaimsIdentity)User.Identity;
IEnumerable<Claim> claims = identity.Claims;
...
}
Run Code Online (Sandbox Code Playgroud)
如果需要Points和/或Wallets某个用户,则可以sub从这些声明中获得声明,并在数据库中查询它。
这也意味着您需要按用户主题存储Points和存储Wallets。
| 归档时间: |
|
| 查看次数: |
2483 次 |
| 最近记录: |