ASP.NET 5 MVC 6身份3角色声明组
我目前正在寻找一个解决方案,在ASP.NET 5 MVC 6中使用身份3的高级角色/组权限管理。我启动了一个新的预览入门网站项目,带有一个集成的简易登录系统 现在我需要一个复杂的“用户权限管理”,具有以下功能:ASP.NET 5 MVC 6身份3角色声明组,asp.net,asp.net-mvc,asp.net-core,asp.net-core-mvc,asp.net-identity-3,Asp.net,Asp.net Mvc,Asp.net Core,Asp.net Core Mvc,Asp.net Identity 3,我目前正在寻找一个解决方案,在ASP.NET 5 MVC 6中使用身份3的高级角色/组权限管理。我启动了一个新的预览入门网站项目,带有一个集成的简易登录系统 现在我需要一个复杂的“用户权限管理”,具有以下功能: 用户可以处于多个组/角色中 一个组/角色有许多访问对象(例如CanAccessUser、CanEditUser…) 每个组/角色的这些访问对象(可能是声明?)相互补充 (对于最终解决方案是可选的):另外=>access对象(可能是声明)可以由组独立地分配给用户 我已经看到,身份已经广泛地
对于这些需求,已经有了一个工作示例,您不必重新发明轮子。如果您正在寻找一个示例项目,目前没有那么多。首先要查看的是GitHub项目页面
幸运的是,ASP.NET Identity子项目有一个示例项目,您可以查看一下,但是它可能没有涵盖您的所有需求。请注意,这是使用最新的测试版。我们在这里处于同一条船上,除了源代码之外,在阅读方面没有太多内容 我们最终实施了政策。保单是满足授权所需的一组索赔。然后可以将这些策略应用于控制器 您可以在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
}
这是我的主要资料来源,对我来说是一本很棒的入门书。祝你好运 这个帖子帮我找到了一些有用的东西,但遗憾的是没有更好的文档记录 以下是我在改进这方面的尝试。Asp.net.Identity(3.0.0.0-rc1-final) 在Startup.cs-->配置服务中
//Define your policies here, they are strings associated with claims types, that have claim strings...
//they need to be in AspNetUserClaims table, user id, department, Dev to be allowed access to the Dev policy
//add the auth option, below that makes it work, and in the api controller, add the
//[Authorize("Dev")] attribute
services.AddAuthorization(
options =>
{
options.AddPolicy("Dev", policy => { policy.RequireClaim("department", "Dev"); });
});
services.AddMvc();
Speedone,您找到身份3的解决方案了吗:基于组的权限管理?