我有一个用于个人帐户的.NET Web API项目。我可以使用标准模板AccountController注册用户。但是,我现在要根据用户的类型设置角色并将用户添加到角色。
DB中没有自动设置角色。如何设置角色,以及如何将角色添加到角色?
我可以找到的唯一的信息是基于旧的ASP.NET成员资格,所以没有设置存储过程的事实。
已经在MSDN上扫过了论坛和教程,似乎找不到Web API的一个例子。
解决方法
您可以使用RoleManager添加角色…
using (var context = new ApplicationDbContext()) { var roleStore = new RoleStore<IdentityRole>(context); var roleManager = new RoleManager<IdentityRole>(roleStore); await roleManager.CreateAsync(new IdentityRole { Name = "Administrator" }); var userStore = new UserStore<ApplicationUser>(context); var userManager = new UserManager<ApplicationUser>(userStore); var user = new ApplicationUser { UserName = "admin" }; await userManager.CreateAsync(user); await userManager.AddToRoleAsync(user.Id,"Administrator"); }
你说的文档现在有点轻了。但是我发现,一旦你与RoleManager和UserManager一起使用了,这个API是可以发现的(但是也许并不总是直观的,有时你必须直接针对商店,甚至是db上下文)运行查询。