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

asp.net – ASP .NET 5 MVC 6身份3角色索赔组[已关闭]

发布时间:2020-12-16 00:31:44 所属栏目:asp.Net 来源:网络整理
导读:我正在寻找一个解决方案,使用ASP.NET 5 MVC 6中的高级角色/组权限管理与身份3.我启动了一个新的预览入门Web项目与一个集成的轻松登录系统。 现在我需要一个复杂的“用户权限管理”,具有以下功能: 用户可以在多个组/角色 一个组/角色有很多访问对象(例如Ca
我正在寻找一个解决方案,使用ASP.NET 5 MVC 6中的高级角色/组权限管理与身份3.我启动了一个新的预览入门Web项目与一个集成的轻松登录系统。

现在我需要一个复杂的“用户权限管理”,具有以下功能:

>用户可以在多个组/角色
>一个组/角色有很多访问对象(例如CanAccessUser,CanEditUser …)
>每个组/角色的这些访问对象(也许是声明?)相互补充
>(最终解决方案可选):additional =>访问对象(可能是权利要求)可以由组独立地分配给用户

我已经看到这个身份已经广泛地提供了一个适合我的表结构。 (例如AspNetUsers,AspNetUserRoles,AspNetRoles,AspNetRoleClaims),

但是我错过了一个很好的例子/文档来使用它们。

对于MVC 5,我使用了这个例子:用户有很多组,一组可以有很多角色(角色是类/函数的源代码中的Access对象)
ASP.NET Identity 2.0: Implementing Group-Based Permissions Management

存在这些要求已经是一个工作的例子,你不必重塑轮子。

解决方法

我们在同一条船上,没有太多的阅读,除了来源当然…

我们最终实施政策。政策是授权满足要求的一组索赔。然后可以将这些策略应用于控制器。

您可以在Startup.cs,ConfigureServices中定义您的策略:

services.AddAuthorization(options =>
{
    options.AddPolicy("SalesSenior",policy =>
    {
        policy.RequireClaim("department","sales");
        policy.RequireClaim("status","senior");
    });
});

我们定义了角色,为其分配了1个或更多的权利要求,并将角色分配给用户,允许根据对控制器的相应策略进行检查。

您可以将IAuthorizationService注入控制器或属性,如下所示:

public class SalesDashboardController: Controller
{
    private readonly IAuthorizationService _authz;

    public VarianceOverviewController(IAuthorizationService authz)
    {
        _authz = authz;
    }
    ...
}

然后,您可以使用IAuthorizationService来检查用户声明的有效性

if (await _authz.AuthorizeAsync(User,"SalesSenior"))
{
    // User is authorized            
}

This article是我这个东西的主要来源,对我来说是一个很棒的起点。祝你好运!

(编辑:李大同)

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

    推荐文章
      热点阅读