• 深入理解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<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

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

  • 相关阅读:
    使用HandyJSON导致的内存泄漏问题相关解决方法
    iOS开发中获取视图在屏幕上显示的位置
    颜色框架Hue使用方法
    网络库Alamofire使用方法
    iOS开发中使用文字图标iconfont
    UISearchBar的扩展使用
    cocoapods导入第三方库提示RPC failed curl 18 transfer
    APP在模拟器崩溃,提示__gcd_queue_item_enqueue_hook_block_invoke
    APP崩溃提示:This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.
    crm
  • 原文地址:https://www.cnblogs.com/blue-tian/p/8687185.html
Copyright © 2020-2023  润新知