主题:

我将继续介绍Identity的账户简单管理,即是增删改查。我会只介绍增加和删除,修改功能代码我会上传到我的github上,

创建用户:

1.我在Model文件夹创建一个 CreateModel.cs的文件,用来接受用户输入的创建账户的信息,代码如下:

 using System.ComponentModel.DataAnnotations;

 namespace DemoUser.Models
{
public class CreateModel
{
[Required]
public string Name { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
}
}

在这里我用了模型验证功能。

2.在admin控制器里面定义创建账户的方法,代码如下:

 public IActionResult Create() => View();

         [HttpPost]
public async Task<IActionResult> Create(CreateModel model)
{
if (ModelState.IsValid)
{
AppUser user = new AppUser
{
UserName = model.Name,
Email = model.Email
};
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
// _passwordHasher.HashPassword();
return RedirectToAction($"Index");
}
else
{
foreach (var error in result.Errors)
{
ModelState.AddModelError("",error.Description);
}
}
} return View(model);
}

代码比较简单,我介绍一下 IdentityResult 类的作用,这个类代表了创建账户的结果,其中

Succeeded 属性 代表了操作是否成功了
Errors 属性 包含了IdentityError对象的集合,
identityError对象描述了错误信息,IdentityError有个public string Description { get; set; }属性代表了错误信息描述
IdentityError的代码比较简单我就不给大家展示反编译代码了。

3。创建视图
创建一个与Create方法对应的视图 ,代码如下:
 @model CreateModel
<div class="bg-primary m-1 p-1 text-white">
<h4>Create User</h4>
</div>
<div asp-validation-summary=" All" class="text-danger"></div>
<form asp-action="Create" method="post">
<div class="form-group">
<label asp-for="Name"></label>
<input asp-for="Name" class="form-control"/>
</div>
<div class="form-group">
<label asp-for="Email"></label>
<input asp-for="Email" class="form-control"/>
</div>
<div class="form-group">
<label asp-for="Password"></label>
<input asp-for="Password" class="form-control"/>
</div>
<button type="submit" class="btn btn-primary">Create</button>
<a asp-action="Index" class="btn btn-secondary">Cancel</a>
</form>

4.运行结果展示:

后续:

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

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

最新文章

  1. Nginx模块之http.md
  2. Python单链表实现
  3. php怎么获取mac地址?
  4. java笔记--异常详解与处理
  5. hdu 4864 Task
  6. MapReduce分析明星微博数据
  7. mysql for python,银行转账模拟
  8. 配置Apacheserver
  9. Notepad++中调试用心lua程序
  10. 初探CSRF在ASP.NET Core中的处理方式
  11. MySQL checkpoint深入分析
  12. mongodb数据库安装
  13. 并发编程(九)—— Java 并发队列 BlockingQueue 实现之 LinkedBlockingQueue 源码分析
  14. C - Alphabetic Removals
  15. ajax 调用webservice 跨域问题
  16. UIView的alpha、hidden和opaque属性之间的关系和区别
  17. mysql查看和修改注释
  18. 三次握手的第三个ACK包丢了,TCP的处理方式
  19. django如何给上传的图片重命名(给上传文件重命名)
  20. [Busybox]Busybox制作文件系统

热门文章

  1. The Closest M Points
  2. 算法笔记_067:蓝桥杯练习 算法训练 安慰奶牛(Java)
  3. 10-string类的length()返回值一起的问题
  4. Mina 系列(四)之KeepAliveFilter -- 心跳检测
  5. sqlserver将数据库的数据导成excel文档方法
  6. 2018.10.23 vijo1243生产产品(单调队列优化dp)
  7. 《Linux多线程服务端编程——使用muduo C++网络库》读书笔记
  8. SPSS-相关性和回归分析(一元线性方程)案例解析
  9. python socket.error: [Errno 10061]
  10. 洛谷P2633 Count on a tree(主席树上树)