深入理解Aspnet Core之Identity(2)

主题: 

我将继续介绍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 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 
class="bg-primary m-1 p-1 text-white"> 3

Create User

4
5
" All" class="text-danger">
6
"Create" method="post"> 7
class="form-group"> 8 9 for="Name" class="form-control"/> 10
11
class="form-group"> 12 13 for="Email" class="form-control"/> 14
15
class="form-group"> 16 17 for="Password" class="form-control"/> 18
19 20 "Index" class="btn btn-secondary">Cancel 21

4.运行结果展示:

深入理解Aspnet Core之Identity(2)_第1张图片后续:

我只介绍了创建客户的流程,,删除和修改流程 和创建差不多,我就不一一介绍了,我把代码放到了我的github地址 https://github.com/bluetianx/AspnetCoreExample 分支是f3

下一篇我将会介绍密码验证的原理,和源代码介绍,以及怎么去实现一个自定义的密码验证类

你可能感兴趣的:(深入理解Aspnet Core之Identity(2))