3
在ASP.NET核心控制器中,我可以訪問User
以獲取所有當前用戶聲明爲ClaimsPrincipal
。現在我添加了一個新用戶,使用userManager.CreateAsync
,添加了一些聲明,並且需要將他的所有聲明作爲ClaimsPrincipal用於其他一些功能。
我試過如下:從用戶管理器獲取ClaimsPrincipal
var user1 = new IdentityUserEntity
{
// set username and stuff
};
var result = await userManager.CreateAsync(user1, passwort);
await userManager.AddClaimAsync(user1, new System.Security.Claims.Claim(MyClaimTypes.Stuff, MyClaimValues.Whatever));
之後,我創建了一個ClaimsPrincipal這樣的:
var user1cp = new ClaimsPrincipal(new ClaimsIdentity(await userManager.GetClaimsAsync(user1)));
問題是,這ClaimsPrincipal不包含的NameIdentifier(也許其他的東西?)。
如何從添加到數據庫的用戶添加一個完整的ClaimsPrincipal?