身份验证 – 如何为Asp.NET MVC 5创建ClaimsIdentity对象?

前端之家收集整理的这篇文章主要介绍了身份验证 – 如何为Asp.NET MVC 5创建ClaimsIdentity对象?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在.NET MVC 5应用程序中工作。我不想使用实体框架。我想要验证一个RavenDB数据库。对我来说,我想替换帐户控制器附带的UserManager。我想我可以重写所有的UserManager函数来处理我的数据库,除非我不明白ClaimIdentity对象。

在SignInAsync方法中,调用UserManager.CreateIdentityAsync(…)。我知道它返回ClaimsIdentity对象。我不知道的是如何自己创建ClaimsIdentity对象。

我看到它有4个属性Actor,BootstrapContext,Claims和Label。我不知道这些属性是用于什么,我不知道如何正确地生成它们。我认为正确生成它们是重要的,因为它是如何进行认证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);

猜你在找的asp.Net相关文章