用户注册主要有2个方法,1、密码加密 2、用户注册 3、ASP.NET Core Identity 使用密码策略、锁定和 cookie 配置等设置的默认值。 可以在类中重写这些设置 Startup(官方详情点这里

首先创建CreateUserViewModel视图模型

using System.ComponentModel;
using System.ComponentModel.DataAnnotations; namespace Shop.ViewModel
{
public class CreateUserViewModel
{
[Required(ErrorMessage = "用户名不能为空")]
[DisplayName("用户名")]
public string UserName { get; set; } [EmailAddress(ErrorMessage = "邮箱格式不正确")]
[DisplayName("邮箱")]
public string Email { get; set; } [DisplayName("手机号")]
[MinLength(11,ErrorMessage = "手机位数不足11位"), StringLength(11)]
public string PhoneNumber { get; set; } [Required(ErrorMessage = "密码不能为空")]
[DataType(DataType.Password)]
[DisplayName("密码")]
public string PasswordHash { get; set; }
}
}

创建regiseter方法

public IActionResult Register()
{
return View();
}

创建Register视图

@model Shop.ViewModel.CreateUserViewModel
@{
ViewData["Title"] = "Register";
} <h1>Register</h1>
<form class="form-horizontal" asp-action="Register" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<fieldset>
<div class="control-group">
<label class="control-label">用户名</label>
<div class="controls">
<input type="text" placeholder="" class="input-xlarge" asp-for="UserName">
<span asp-validation-for="UserName" class="text-danger"></span>
</div>
</div> <div class="control-group">
<label class="control-label">邮箱</label>
<div class="controls">
<input type="text" placeholder="" class="input-xlarge" asp-for="Email">
<span asp-validation-for="Email" class="text-danger"></span>
</div>
</div> <div class="control-group">
<label class="control-label">手机号</label>
<div class="controls">
<input type="text" placeholder="" class="input-xlarge" asp-for="PhoneNumber">
<span asp-validation-for="PhoneNumber" class="text-danger"></span>
</div>
</div> <div class="control-group">
<label class="control-label">密码</label>
<div class="controls">
<input type="text" placeholder="" class="input-xlarge" asp-for="PasswordHash">
<span asp-validation-for="PasswordHash" class="text-danger"></span>
</div>
</div>
<input type="submit" class="btn btn-primary" value="注册">
</fieldset>
</form>
@*输入内容跟模型定义规则不符时需要验证提示加入此脚本*@
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

创建Register post方法

[HttpPost]
public async Task<IActionResult> Register(CreateUserViewModel input)
{
if (ModelState.IsValid)
{
var user = new IdentityUser
{
UserName = input.UserName,
Email = input.Email,
PhoneNumber = input.PhoneNumber,
PasswordHash = input.PasswordHash
}; //创建用户
var result = await _userManager.CreateAsync(user);
//如果成功则返回用户列表
if (result.Succeeded)
{
return RedirectToAction("Index");
}
}
return View(input);
}

效果展示,如果验证错误则有如下提示

如果成功提交则返回用户列表页,注意:未做编号自增及用户名是否重复的验证

Identity用户管理入门三(注册用户)的更多相关文章

  1. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证)

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

  2. Identity角色管理五(添加用户到角色组)

    因需要在用户列表中点详情按钮来到当前页,所以需要展示分组详情,并展示当前所属角色组的用户 public async Task<ActionResult> Details(string id ...

  3. Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录

    Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...

  4. Identity用户管理入门六(判断是否登录)

    目前用户管理的增删改查及登录功能已经全部实现,但存在一个问题,登录后要取消登录按钮显示退出按钮,未登录应该有注册按钮,现实现过程如下 一.Startup.cs中增加服务 app.UseAuthenti ...

  5. Identity用户管理入门二(显示用户列表)

    在Controllers中新建AccountController,并在构造方法(函数)中注入SignInManager,UserManager UserManager   用户管理(注册,查找,修改, ...

  6. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

  7. Identity用户管理入门七(扩展用户字段)

    在实际使用时会发现很多字段在IdentityUser中并不存在,比如增加生日,地址等字段,可在模型类中实现自己的模型并继承自IdentityUser,需要修改的代码为以下类 一.新增模型 using ...

  8. Identity用户管理入门五(登录、注销)

    一.建立LoginViewModel视图模型 using System.ComponentModel.DataAnnotations; namespace Shop.ViewModel { publi ...

  9. Identity用户管理入门四(修改、删除用户)

    修改用户不能修改Id及用户名所以创建视图模型时需要去除,新增用户跟修改用户基本视图一直,所以不再做演示 一.新建UpdateUserViewModel视图模型 using System.Compone ...

随机推荐

  1. charles抓取https设置

    第一步:打开charles,查看电脑ip,手机设置代理(需要手机和电脑在同一网络) 手机下载证书不要用自带的下,会失败 1.查看电脑ip 2.手机设置代理,修改网络,保存 3.手机访问"看图 ...

  2. ElasticSearch入门检索

    前面简介说到 elsatic是通过RestFul API接口操作数据的,可以通过postman模拟接口请求测试一下 一._cat 1.GET /_cat/nodes:查看所有节点 2.GET /_ca ...

  3. rsa加密初探

    RSA加密算法初探 RSA加密算法是早期的非对称加密,公钥和私钥分离,公开公钥,通过确保私钥的安全来保证加密内容的安全.由麻省理工学院的罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi ...

  4. 跟我一起写 Makefile(十)

    四.foreach 函数 foreach函数和别的函数非常的不一样.因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell(/bin/sh)中的for语 ...

  5. 目录已存在导致Jenkins项目构建失败的解决方法

    Jenkins中的项目在下载源代码时,如果Working Directory中存在未加入版本控制的文件或者目录已经存在于SVN库中,会导致更新失败,整个构建终止,解决方法是将SVN的检出策略由&quo ...

  6. Java工具包之-Guava

    https://blog.csdn.net/zmx729618/article/details/78540026 https://my.oschina.net/realfighter/blog/349 ...

  7. 遗传算法Genetic Algorithm

    遗传算法Genetic Algorithm 好家伙,回回都是这个点,再这样下去人估计没了,换个bgm<夜泊秦淮>,要是经典咏流传能投票选诗词,投票选歌,俺一定选这个 开始瞎叨叨 遗传算法的 ...

  8. SpringBoot开发十九-添加评论

    需求介绍 熟悉事务管理,并且应用到添加评论的功能. 数据层:增加评论数据,修改帖子的评论数量 业务层:处理添加评论的业务,先增加评论再更新帖子的评论数量(因为用到了两个DML操作所以要用到事务管理) ...

  9. 安鸾CTF Writeup wordpress 01

    题目一: wordpress 01 URL:http://whalwl.site:8041/ wordpress 站思路就是先用wpscan 进行扫描检测一遍. wpscan 使用方法可以参考两篇文章 ...

  10. 第8篇-dispatch_next()函数分派字节码

    在generate_normal_entry()函数中会调用generate_fixed_frame()函数为Java方法的执行生成对应的栈帧,接下来还会调用dispatch_next()函数执行Ja ...