1. 程式人生 > >深入理解Aspnet Core之Identity(2)

深入理解Aspnet Core之Identity(2)

我會 tle lstat easyn OS app esc BE label

主題:

我將繼續介紹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

下一篇我將會介紹密碼驗證的原理,和源代碼介紹,以及怎麽去實現一個自定義的密碼驗證類

深入理解Aspnet Core之Identity(2)