我还在用asp.net core学习身份。我正在做一个基于声明的令牌授权。大多数例子都是关于"当前"登录用户的。在我的情况下,我的RPC服务正在接收用户名&身份数据库中某个用户的密码。我需要
- 验证具有此类凭据的用户是否存在
- 获取该用户的所有声明
验证用户是否存在,我使用这个:
ApplicationUser applicationUser = await _userManager.FindByNameAsync(username);
bool exist = await _userManager.CheckPasswordAsync(applicationUser, password);
if (!exist)
{
// log and return
}
我不知道如何正确地做第二步。我想我可以做一个简单的linq来收集所有用户的声明,但我确信使用身份方法有更好的方法。
需要使用GetClaimsAsync()
方法。例如:
var claims = await _userManager.GetClaimsAsync(applicationUser);
查看MSDN