主题:

我将继续介绍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

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

深入理解Aspnet Core之Identity(2)的更多相关文章

  1. 深入理解Aspnet Core之Identity(5)

    主题 本篇我将会介绍验证用户的机制当账户被创建的时候,同样 这个过程主要有IUserValidator这个接口来实现的,和密码验证一样Identity同样也内置已经实现好的账户验证.账户验证的比较简单 ...

  2. 深入理解Aspnet Core之Identity(4)

    主题 之前简单介绍了Asp.net core 的初步的使用,本篇我打算给大家介绍一下Identity的架构,让大家对Identity有一个总体的理解和认识. 简介 博客原文欢迎访问我的博客网站,地址是 ...

  3. 深入理解Aspnet Core之Identity(3)

    主题 账户管理一个比较常见的功能就是密码强度策略,Identity已经内置了一个通用的可配置的策略,我们一般情况下可以直接拿来用即可.本篇我会介绍一些Identity内置的密码策略类:Password ...

  4. 深入理解Aspnet Core之Identity(1)

    最近学习asp.netcore 打算写出来和大家分享,我计划先写Identity部分,会从开始asp.netocre identity的简单实用开始,然后再去讲解主要的类和自定义这些类. 主题:asp ...

  5. 初识AspNet Core中的标识Identity

    AspNet Core中的标识Identity,是用于Web应用程序的成员身份验证系统. 最方便的引入办法是在创建MVC或Pages的Web应用时,直接选择相应的身份验证系统.如图: 如果选择的是“个 ...

  6. 如何基于asp.net core的Identity框架在mysql上作身份验证处理

    首先了解这个概念,我一开始也是理解和掌握基本的概念,再去做程序的开发.Identity框架是微软自己提供,基于.net core平台,可拓展.轻量 级.面向多个数据库的身份验证框架.IdentityS ...

  7. ASP.NET Core 之 Identity 入门(三)

    前言 在上一篇文章中,我们学习了 CookieAuthentication 中间件,本篇的话主要看一下 Identity 本身. 最早2005年 ASP.NET 2.0 的时候开始, Web 应用程序 ...

  8. [转]ASP.NET Core 之 Identity 入门(三)

    本文转自:http://www.cnblogs.com/savorboard/p/aspnetcore-identity3.html 前言 在上一篇文章中,我们学习了 CookieAuthentica ...

  9. 关于 AspNet Core 的配置文件 与VS2017 安装

    下面链接 是VS2017 安装EXE 我现在装过了就不去截图演示了,有哪位不理解的可以@我. 链接:https://pan.baidu.com/s/1hsjGuJq 密码:ug59 1.今天我给大家带 ...

随机推荐

  1. Java中Generics的使用

    1.Java的Generics与C++的Template由于Java的Generics设计在C++的Template之后,因此Java的Generics设计吸取Template的很多经验和教训.首先, ...

  2. 运行php网站需要安装什么

    php的运行环境: 为了能够运行php,有以下两种方法: 1. 使用支持php和MySQL的web主机(): 2. 本机(自己电脑)安装web服务器,然后安装MySQL和php. web虚拟主机: 大 ...

  3. sqlserver 几种datatime的区别

    参考文章1 smalldatetime 占4位精确到分钟.时间从1900.1.1到2079.6.6datetime占8位精确到毫秒.时间从1753.1.1到9999.12.31 参考文章2 datet ...

  4. [leetcode]215. Kth Largest Element in an Array 数组中第k大的元素

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

  5. (三)介绍简单的ROS命令

    1.ROS文件系统中的基本概念 Packages: Package是ROS系统中最底层最基本的组织,里面存放各种文件:库.工具.可执行文件等.Manifest: 一个package描述xml文件,定义 ...

  6. iptables-save和iptables-restore

    iptables-save用来把当前的规则存入一个文件里以备iptables-restore使用.它的使用很简单,只有两个参数: iptables-save [-c] [-t table] 参数-c的 ...

  7. (转载)Zab vs. Paxos

    原创链接:https://cwiki.apache.org/confluence/display/ZOOKEEPER/Zab+vs.+Paxos Is Zab just a special imple ...

  8. Loadrunner脚本回放无法准确定位欲删除元素

    Loadrunner脚本回放无法准确定位欲删除元素 问题: loadrunner脚本回放无法准确定位欲删除元素 详细: 我司ocrm系统,我的工作台菜单->我的综合工作台子页面下,工作日志页面删 ...

  9. window下装redis扩展(以php5.5为例)

    一.安装redis服务 1.下载并解压 https://github.com/dmajkic/redis/downloads 2.运行redis服务 3.检查能否正常访问  二.安装redis扩展 1 ...

  10. mysq 日期l查询

    pym=mysql(host = '#', port = 3306, user = '#',passworld='#',database='#') #根据起始和结束时间 charge_sql = 'S ...