ASP.NET CORE[练习9]-Identity-Claim

本文详细介绍了在ASP.NET CORE中如何使用和管理Claim,包括Claim的增删改查,添加授权策略,以及在实际应用中的操作。通过自定义Enum和ViewModel,展示了如何为用户分配和编辑Claim,并提醒读者分配Claims后需重新登录才能生效。
摘要由CSDN通过智能技术生成

练习+博客,量化自己的进步!

Claim个人感觉与Roles用户角色非常的像,Claim管理与角色管理已经应用上都非常的像。可能我学的浅,还未深入了解其意。

1.claim管理

2.添加claim授权策略

3.应用

 

claim管理

与角色管理一样,增删改查,字段属性也不多。在功能实现上的区别是,角色是在角色管理中给绑定多个用户,claim是在用户管理中给用户分配多个claim。

1.自定义的ApplicationUser继承于IdentityUser,添加的导航属性有Claims、Logins、Tokens、UserRoles,这个工作之前都已经做过了,UserRoles角色的应用上一篇也已经做过了。

2.migration后数据库中也添加了Claims表AspNetUserClaims

3.自定义一个Claim Enum,AuthClaimEnum(也可以做一个数据库管理的Claim)

4.自定义UserClaimsViewModel

5.一个给用户分配Claim的是视图页面。

6.userManager.FindbyIdAsync(Id)  查找用户

  userManager.GetClaimsAsync(user)  获取用户的所有Claim

  userManager.UpdateAsync()  更新用户(添加Claims)

 

自定义一个Claim Enum

public enum AuthClaimEnum
{
    EditUser,
    EditStudent,
    EditRole
}

在编辑用户的页面中添加展示用户Claim,如下:

用户Edit方法中编辑代码:

public async Task<IActionResult> Edit(string Id)
{
    ViewBag.Type = "Edit";
    var model = await userManager.FindByIdAsync(Id);
    // 获取用户的Claims
    var claims = await userManager.GetClaimsAsync(model);
    ViewBa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值