Identity角色管理三(创建角色)

Posted liessay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Identity角色管理三(创建角色)相关的知识,希望对你有一定的参考价值。

首先创建视图模型

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace Shop.ViewModel
{
    public class CreateEditRoleViewModel
    {
        [Required(ErrorMessage = "角色名不能为空")]
        [DisplayName("角色名")]
        public string Name { get; set; }
    }
}

增加角色方法

// GET: RoleController/Create
public ActionResult Create()
{
    return View();
}

// POST: RoleController/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(CreateEditRoleViewModel input)
{
    if (!ModelState.IsValid)
    {
        return View(input);
    }
    var role = new IdentityRole
    {
        Name = input.Name
    };
    var result = await _roleManager.CreateAsync(role);
    if (result.Succeeded)
    {
        return RedirectToAction("Index");
    }

    foreach (var item in result.Errors)
    {
        ModelState.AddModelError(string.Empty, item.Description);
    }
    return View(input);
}

创建角色视图

@model Shop.ViewModel.CreateEditRoleViewModel

@{
    ViewData["Title"] = "Create";
}

<h1>Create</h1>

<h4>创建角色</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Create" method="post">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="Name" class="control-label"></label>
                <input asp-for="Name" class="form-control" />
                <span asp-validation-for="Name" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>

@section Scripts {
    @{await html.RenderPartialAsync("_ValidationScriptsPartial");}
}

显示效果及验证报错效果

技术图片

以上是关于Identity角色管理三(创建角色)的主要内容,如果未能解决你的问题,请参考以下文章

Identity角色管理二(显示角色)

Identity角色管理五(添加用户到角色组)

MVC Identity 2.0 和管理角色

ASP.NET MVC 5 中的简单角色管理器和授权,无需使用 Identity(CustomRoleProvider)

如何使用 Identity ASP.NET Core 通过代码优先迁移为用户和角色播种

Core Identity Razor Pages 或直接使用用户/角色/登录管理器