Следующие шаги помогут вам создать пользователя, создать роли, назначить пользователя ролям и ограничить его доступ в зависимости от их роли.
Откройте свое решение в Visual Studio
Инструменты> Консоль диспетчера пакетов Nuget> Ввести Enable-Migrations
Открыть миграцию> Configuration.cs
Используйте это как метод семени;
protected override void Seed(ISPRC.Models.ApplicationDbContext context)
{
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
userManager.UserValidator = new UserValidator<ApplicationUser>(userManager)
{
AllowOnlyAlphanumericUserNames = false,
};
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
// Create a User Role
if (!roleManager.RoleExists("Admin"))
{
var role = new IdentityRole();
role.Name = "Admin";
roleManager.Create(role);
}
if (!context.Users.Any(u => u.UserName == "admin@mail.com"))
{
var user = new ApplicationUser
{
UserName = "admin@mail.com",
Email = "admin@mail.com",
EmailConfirmed = true,
};
// Create User
userManager.Create(user, "Password@777");
// Add User to Admin Role
userManager.AddToRole(user.Id, "Admin");
}
}
Чтобы ограничить определенные роли в доступе к вашим контроллерам или действиям, добавьте
[Authorize]
или
[Authorize(Roles="Admin,User")]
Контроллер, указанный ниже, будет разрешать только зарегистрированным пользователям, имеющим роль администратора. Если их роль не соответствует требованию, они будут автоматически перенаправлены на страницу входа.
[Authorize(Roles = "Admin")]
public class AdminController : Controller
{
private ApplicationDbContext db = new ApplicationDbContext();
public ActionResult Accounts()
{
return View();
}
}
Инструменты> Консоль диспетчера пакетов Nuget> Enter
Update-Database