我坚持要在asp.net mvc核心应用程序中提供的解决方案.我想在Web应用程序中提供标准用户,角色,权限的解决方案,利用新的基于声明的方法.
我一直在关注Ben Foster的逻辑(http://benfoster.io/blog/asp-net-identity-role-claims).在下面的代码(演示质量)中,我将阐述我的方法,我将发表评论以帮助显示我快速而肮脏的测试解决方案.
我遇到的挑战是,它不起作用.
//注意:我发现了这个错误,并会在未来用户寻找类似解决方案的地方发表评论.
种子类:这是一个快速而肮脏的解决方案,可以为两个新用户,两个角色和一个角色的一些声明来种子数据库.我这是一个测试应用程序,用于学习管理我的应用程序授权的声明方法.我的完整解决方案将为每个租户提供一种方式,通过UI创建自己的角色,将1个或多个声明与角色相关联,然后为用户分配角色.我想为租户提供一种管理自己用户以及他们能做什么或不做什么的方法.这是基于声明的方法的简单实现,因为权利要求比与策略的1:1关系具有更多的权力.
public class DbInitializer
{
private ApplicationDbContext _context;
private RoleManager<ApplicationRole> _roleManager;
private UserManager<ApplicationUser> _userManager;
public DbInitializer(ApplicationDbContext context,RoleManager<ApplicationRole> roleManager, UserManager<ApplicationUser> userManager)
{
_roleManager = roleManager;
_userManager = userManager;
_context = context;
}
public async Task Initialize()
{
//RoleManager<IdentityRole> roleManager = new RoleManager<IdentityRole>();
//UserManager<ApplicationUser> userManager = new UserManager<ApplicationUser>();
_context.Database.EnsureCreated();
// Look for any students.
if (!_context.Users.Any())
{
//create user and admin role
ApplicationUser adminUser = new ApplicationUser();
adminUser.Email = "admin@company.com";
adminUser.UserName = "Admin";
var …Run Code Online (Sandbox Code Playgroud)