Identity用户管理入门五(登录、注销)
一、建立LoginViewModel视图模型
using System.ComponentModel.DataAnnotations; namespace Shop.ViewModel
{
public class LoginViewModel
{
[Required]
[Display(Name = "用户名")]
public string Name { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "密码")]
public string Password { get; set; }
}
}
二、登录方法
public IActionResult Login()
{
return View();
}
三、登录页面
@model Shop.ViewModel.LoginViewModel
@{
ViewData["Title"] = "Login";
} <h1>Login</h1>
<form class="form-horizontal" asp-action="Login" method="post">
<fieldset>
<div class="control-group">
<label class="control-label">用户名</label>
<div class="controls">
<input type="text" placeholder="" class="input-xlarge" asp-for="Name">
</div>
</div>
<div class="control-group">
<label class="control-label">密码</label>
<div class="controls">
<input type="text" placeholder="" class="input-xlarge" asp-for="Password">
</div>
</div>
<input type="submit" class="btn btn-primary" value="登录"/>
</fieldset>
</form>
四、登录实现
[HttpPost]
public async Task<IActionResult> Login(LoginViewModel input)
{
if (!ModelState.IsValid)
{
return View(input);
} var user = await _userManager.FindByNameAsync(input.Name);
if (user != null)
{
var result = await _signInManager.PasswordSignInAsync(user, input.Password, false, false);
if (result.Succeeded)
{
return RedirectToAction("Index");
}
}
ModelState.AddModelError("", "用户名或密码错误");
return View(input);
}
五、注销
[HttpPost]
public async Task<IActionResult> Logout()
{
await _signInManager.SignOutAsync();
return RedirectToAction("Index", "Home");
}
六、新建用户后不能直接登录,因为在Startup.cs类中定义了用户需要确认后才能登录,配置代码如下
services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
因现在学习原理为主,自己增加用户后先在数据库(AspNetUsers)手工修改确认或者将上述需要验证设置为false,验证方式如下最好参考官方多重身份验证
- RequireConfirmedAccount 账户确认
- RequireConfirmedEmail 邮件确认
- RequireConfirmedPhoneNumber 电话确认

Identity用户管理入门五(登录、注销)的更多相关文章
- Identity用户管理入门六(判断是否登录)
目前用户管理的增删改查及登录功能已经全部实现,但存在一个问题,登录后要取消登录按钮显示退出按钮,未登录应该有注册按钮,现实现过程如下 一.Startup.cs中增加服务 app.UseAuthenti ...
- Identity用户管理入门二(显示用户列表)
在Controllers中新建AccountController,并在构造方法(函数)中注入SignInManager,UserManager UserManager 用户管理(注册,查找,修改, ...
- Identity用户管理入门七(扩展用户字段)
在实际使用时会发现很多字段在IdentityUser中并不存在,比如增加生日,地址等字段,可在模型类中实现自己的模型并继承自IdentityUser,需要修改的代码为以下类 一.新增模型 using ...
- Identity用户管理入门三(注册用户)
用户注册主要有2个方法,1.密码加密 2.用户注册 3.ASP.NET Core Identity 使用密码策略.锁定和 cookie 配置等设置的默认值. 可以在类中重写这些设置 Startup(官 ...
- Identity用户管理入门一(框架搭建)
理论知识微软官方文档最完整,最详细,这里只一步步的介绍如何使用,地址:https://docs.microsoft.com/zh-cn/aspnet/core/security/authenticat ...
- Identity用户管理入门四(修改、删除用户)
修改用户不能修改Id及用户名所以创建视图模型时需要去除,新增用户跟修改用户基本视图一直,所以不再做演示 一.新建UpdateUserViewModel视图模型 using System.Compone ...
- oracle用户管理入门
1.创建一个新用户(普通) create user 用户名 identified by 密码 示例,创建一个名叫小明的用户,密码为xm 2.以管理员的身份给普通用户修改密码(当普通用户忘掉自己的密码时 ...
- OpenStack 认证服务 KeyStone连接和用户管理(五)
一) 创建环境变量链接keyston vim adminrc export OS_USERNAME=admin export OS_PASSWORD=redhat export OS_PROJECT_ ...
- .NET 统一用户管理 -- 单点登录
单点登录 前言 本篇做为.Net 统一用户管理的系列文章的开山之作,主要说一个单点登录是怎么实现的,以及为啥要统一用户管理. 单点登录(Single Sign On),简称为 SSO,是目前比较流行的 ...
随机推荐
- Centos8 Nginx 开机自启配
第一步:创建 service文件 vim /lib/systemd/system/nginx.service /lib 与 /usr/lib 我这里配置时是一样的,在那个文件夹配置都可以 第二步:编写 ...
- vue 传参动态
方法一: router/index.js { path: '/src/views/activitiesDetails', name: activitiesDetails, component: act ...
- 收到字节月薪35k Offer,揭秘面试流程及考点
前段时间,有个朋友又出去面试了,这次他面试目标比较清晰,面的都是业务量大.业务比较核心的部门.前前后后去了不少公司,几家大厂里,他说给他印象最深的是字节.  写操作,程序将字符流写入到"目的地",比如打印机和文件等 输入流 :Scann ...
- 009 FPGA实现网口通信的几种方式【转载】
从硬件上来说,一般PHY芯片为模数混合电路,负责接收电.光这类模拟信号,经过解调和A/D转换后通过MII接口将信号交给MAC芯片进行处理.一般MAC芯片为纯数字电路. 物理层定义了数据传送与接收所需要 ...
- 题解 Six(留坑)
传送门 考场上搞了个三进制状压,结果正确性假了-- 有想到从约数下手,但觉得就光预处理约数复杂度就爆炸就没往这边想-- 首先是关于约数个数的证明,再一次感谢战神: 因为 \(n = \prod p_i ...
- Visual Studio 2019 使用C语言创建动态链接库(Dll)并使用C语言和C#实现调用
参考网址:https://blog.csdn.net/weixin_34976988/article/details/99625533 一.创建DLL1.建立动态链接库项目 2.创建头文件和源文件 删 ...
- Walkthrough: Create and use your own Dynamic Link Library (C++)
参考网站:https://docs.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-librar ...