Identity用户管理入门三(注册用户)
2024-10-19 13:35:24
用户注册主要有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);
}
效果展示,如果验证错误则有如下提示
如果成功提交则返回用户列表页,注意:未做编号自增及用户名是否重复的验证
最新文章
- jws.mono脚本安装详解
- java语法基本知识2
- JS中this的值到底为何?
- [Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium
- NavMesh系统动态碰撞的探讨
- xhr dojo load
- 20141104--SQL,查询习题,约束
- Linux下进程的同步相互排斥实例——生产者消费者
- Url几个常用的函数
- SVN遇到Can&#39;t convert string from &#39;UTF-8&#39; to native encoding
- HAUT--1262--魔法宝石(暴力)
- java环境搭建 windows
- Scikit-learn:数据预处理Preprocessing data
- flex 强制转换类型失败无法将object转换为XXX
- Directory 类
- ERROR 1130 (HY000): Host &#39;172.16.1.54&#39; is not allowed to connect to this MySQL server
- 【浅说】堆(heap)和栈(stack)区别
- [20170705]理解linux su命令.txt
- A^B mod C (快速幂+快速乘+取模)题解
- python实现并发爬虫