加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 00:48:34 所属栏目:asp.Net 来源:网络整理
导读:我正在.NET MVC 5应用程序中工作。我不想使用实体框架。我想要验证一个RavenDB数据库。对我来说,我想替换帐户控制器附带的UserManager。我想我可以重写所有的UserManager函数来处理我的数据库,除非我不明白ClaimIdentity对象。 在SignInAsync方法中,调用U
我正在.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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读