主題: 我將繼續介紹Identity的賬戶簡單管理,即是增刪改查。我會只介紹增加和刪除,修改功能代碼我會上傳到我的github上, 創建用戶: 1.我在Model文件夾創建一個 CreateModel.cs的文件,用來接受用戶輸入的創建賬戶的信息,代碼如下: 在這裡我用了模型驗證功能。 2.在adm ...
主題:
我將繼續介紹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.Email 12 }; 13 var result = await _userManager.CreateAsync(user, model.Password); 14 if (result.Succeeded) 15 { 16 // _passwordHasher.HashPassword(); 17 return RedirectToAction($"Index"); 18 } 19 else 20 { 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
下一篇我將會介紹密碼驗證的原理,和源代碼介紹,以及怎麼去實現一個自定義的密碼驗證類