gpt4 book ai didi

authentication - 如何为Asp.NET MVC 5创建ClaimsIdentity对象?

转载 作者:行者123 更新时间:2023-12-03 10:07:26 26 4
gpt4 key购买 nike

我正在.NET MVC 5应用程序中工作。我不想使用 Entity Framework 。我想对RavenDB数据库进行身份验证。在我看来,我想替换帐户 Controller 随附的UserManager。我认为我可以重写所有UserManager函数以使用我的数据库,除非我不了解ClaimsIdentity对象。

SignInAsync方法中,有一个对UserManager.CreateIdentityAsync(...)的调用。我知道它会返回一个ClaimsIdentity对象。我不知道如何自行创建ClaimsIdentity对象。

我看到它具有4个属性ActorBootstrapContextClaimsLabel。我不知道这些属性的用途,也不知道如何正确生成它们。我认为正确生成它们很重要,因为这是制作身份验证Cookie的方式。

我查看了ClaimsIdentity对象here的解释,但这并没有真正帮助我理解。

如果我可以看到CreateIdentityAsync()的代码,那可能会有所帮助。

如果我要解决所有这些错误,请告诉我。否则,如果有人可以指出如何生成ClaimsIdentity对象,那将很有帮助。

ClaimsIdentity identity = new ClaimsIdentity
{
Actor = ????,
BootstrapContext = ?????,
Claims = ?????,
Label = ?????
}

最佳答案

也许following link可以帮助您:

var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Name, "Brock"));
claims.Add(new Claim(ClaimTypes.Email, "brockallen@gmail.com"));
var id = new ClaimsIdentity(claims,DefaultAuthenticationTypes.ApplicationCookie);

var ctx = Request.GetOwinContext();
var authenticationManager = ctx.Authentication;
authenticationManager.SignIn(id);

关于authentication - 如何为Asp.NET MVC 5创建ClaimsIdentity对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20391592/

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