gpt4 book ai didi

asp.net-mvc - 带有 ASP.NET 标识的 MVC 5 - 用户登录时获取声明

转载 作者:行者123 更新时间:2023-12-04 20:07:20 25 4
gpt4 key购买 nike

我正在使用 OWIN 2.0,在我登录用户后,我想从数据库中检索现有的声明,但如果我尝试获取用户的声明,它们是空的。如果我将相同的代码放在任何被调用的后续 Controller 中,那么声明就在那里。似乎在初始登录后的下一个请求之前,声明不可用。为什么是这样?

var claimsIdentity = User.Identity as ClaimsIdentity;
var testClaim = claimsIdentity.Claims.Where(r => r.Type == "TestClaim").FirstOrDefault();

最佳答案

可能是因为您没有将声明传递到初始登录中(或者错过了调用 CreateIdentityAsync )?

使用开箱即用的 MVC5 应用程序,我在 SignInAsync 中执行此操作方法:

private async Task SignInAsync(ApplicationUser user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);

//Get the given name from somewhere
var givenName = GetGivenName();

identity.AddClaim(new Claim(ClaimTypes.GivenName, givenName));

AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}

这是从 Login 调用的行动。

关于asp.net-mvc - 带有 ASP.NET 标识的 MVC 5 - 用户登录时获取声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23926205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com