主题:
我将继续介绍Identity的账户简单管理,即是增删改查。我会只介绍增加和删除,修改功能代码我会上传到我的github上,
创建用户:
1.我在Model文件夹创建一个 CreateModel.cs的文件,用来接受用户输入的创建账户的信息,代码如下:
1 using System.ComponentModel.DataAnnotations; 2 ?3 namespace DemoUser.Models 4 { 5 ????public class CreateModel 6 ????{ 7 ????????[Required] 8 ????????public string Name { get; set; } 9 ????????[Required]10 ????????public string Email { get; set; }11 ????????[Required]12 ????????public string Password { get; set; }13 ????}14 }
在这里我用了模型验证功能。
2.在admin控制器里面定义创建账户的方法,代码如下:
1 public IActionResult Create() => View(); 2 ?3 ????????[HttpPost] 4 ????????public async Task<IActionResult> Create(CreateModel model) 5 ????????{ 6 ????????????if (ModelState.IsValid) 7 ????????????{ 8 ????????????????AppUser user = new AppUser 9 ????????????????{10 ????????????????????UserName = model.Name,11 ????????????????????Email = model.Email12 ????????????????};13 ????????????????var result = await _userManager.CreateAsync(user, model.Password);14 ????????????????if (result.Succeeded)15 ????????????????{16 ???????????????????// _passwordHasher.HashPassword();17 ????????????????????return RedirectToAction($"Index");18 ????????????????}19 ????????????????else20 ????????????????{21 ????????????????????foreach (var error in result.Errors)22 ????????????????????{23 ????????????????????????ModelState.AddModelError("",error.Description);24 ????????????????????}25 ????????????????}26 ????????????}27 28 ????????????return View(model);29 ????????}
代码比较简单,我介绍一下 IdentityResult 类的作用,这个类代表了创建账户的结果,其中
Succeeded 属性 代表了操作是否成功了
Errors 属性 包含了IdentityError对象的集合,
identityError对象描述了错误信息,IdentityError有个public string Description { get; set; }属性代表了错误信息描述
IdentityError的代码比较简单我就不给大家展示反编译代码了。
3。创建视图
创建一个与Create方法对应的视图 ,代码如下:
1 @model CreateModel 2 <div class="bg-primary m-1 p-1 text-white"> 3 ????<h4>Create User</h4> 4 </div> 5 <div asp-validation-summary=" All" class="text-danger"></div> 6 <form asp-action="Create" method="post"> 7 ????<div class="form-group"> 8 ????????<label asp-for="Name"></label> 9 ????????<input asp-for="Name" class="form-control"/>10 ????</div>11 ????<div class="form-group">12 ????????<label asp-for="Email"></label>13 ????????<input asp-for="Email" class="form-control"/>14 ????</div>15 ????<div class="form-group">16 ????????<label asp-for="Password"></label>17 ????????<input asp-for="Password" class="form-control"/>18 ????</div>19 ????<button type="submit" class="btn btn-primary">Create</button>20 ????<a asp-action="Index" class="btn btn-secondary">Cancel</a>21 </form>
4.运行结果展示:
后续:
我只介绍了创建客户的流程,,删除和修改流程 和创建差不多,我就不一一介绍了,我把代码放到了我的github地址 https://github.com/bluetianx/AspnetCoreExample 分支是f3
下一篇我将会介绍密码验证的原理,和源代码介绍,以及怎么去实现一个自定义的密码验证类
深入理解Aspnet Core之Identity(2)
原文地址:https://www.cnblogs.com/cjm123/p/8696115.html