Identity 更改密码的几种方式

1、先使用UserManager.RemovePassword(UserID),清空密码,再使用UserMnager.AddPassword(UserId,newPassword)增加新密码。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ChangePassword(ChangePasswordViewModel userViewModel)
{
var userId = User.Identity.GetUserId();
var _user = UserManager.FindById(userId);
if (ModelState.IsValid)
{
if (UserManager.CheckPassword(_user, userViewModel.OldPassword))      //UserManager.CheckPasswrod检查 密码是否正确。
{
UserManager.RemovePassword(userId);      //清空旧密码。
UserManager.AddPassword(userId, userViewModel.NewPassword);      //加入新密码.
return RedirectToAction("Index");
}
else
{
ModelState.AddModelError("", "输入的旧密码不正确");
return View(userViewModel);
}
}
else
{
ModelState.AddModelError("", "绑定失败");
return View(userViewModel);
}
}

2、利用UserManager.GerneratePasswordResetTokeno为用户创建一个重置密码的GUID值,然后调用 ResetPassword(UserId,GUID,newPassword)值重新创建密码;

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ChangeUserPassword(ResetPasswordViewModel _resetPasswordViewModel)
{
if (!ModelState.IsValid)
{
return View(_resetPasswordViewModel);
}

var _user = UserManager.FindByName(_resetPasswordViewModel.UserName);
if (_user == null)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);

var code =UserManager.GeneratePasswordResetToken(_user.Id);       //为用户创建一个重置密码的GUID值
var result =UserManager.ResetPassword(_user.Id,code,_resetPasswordViewModel.Password);       //重新创建密码;
if (result.Succeeded)  
{
return RedirectToAction("Index");

}
return View();

}

时间: 2024-10-13 09:18:05

Identity 更改密码的几种方式的相关文章

Linux下修改Mysql密码的三种方式,测试过效果,能正常使用

个人分类: mysql修改密码linux修改mysql密码软件编程 有时我们会忘记Mysql的密码,或者想改一个密码,以下将对这两种情况修改密码的三种解决方法做个总结 本文都以用户为 root 为例: 一.拥有原来的myql的root的密码: 方法一: 在mysql系统外,使用mysqladmin mysqladmin -u root -p password "test123"Enter password: [输入原来的密码]方法二: 通过登录mysql系统, mysql -uroot

详解PHP处理密码的几种方式(收藏)

在 PHP中,经常会对用户身份进行认证.本文意在讨论对密码的处理,也就是对密码的加密处理. MD5 相信很多PHP开发者在最先接触PHP的时候,处理密码的首选加密函数可能就是MD5了,我当时就是这样的: ? 1 $password = md5($_POST["password"]); 上面这段代码是不是很熟悉?然而MD5的加密方式目前已经不太安全了,因为它的加密算法实在是显得有点简单了,而且很多破解密码的站点都存放了很多经过MD5加密的密码字符串,所以这里我是非常不提倡还在单单使用MD

PHP处理密码的几种方式【转载】

转自:http://www.3lian.com/edu/2015/08-01/235322.html 在使用PHP开发Web应用的中,很多的应用都会要求用户注册,而注册的时候就需要我们对用户的信息进行处理了,最常见的莫过于就是邮箱和密码了,本文意在讨论对密码的处理:也就是对密码的加密处理. MD5 相信很多PHP开发者在最先接触PHP的时候,处理密码的首选加密函数可能就是MD5了,我当时就是这样的: $password = md5($_POST["password"]); 上面这段代码

sqoop提供数据库密码的4种方式

背景 sqoop是一个用来将Hadoop和关系型数据库(RDBMS)中的数据进行相互转移的工具.在使用sqoop时,我们需要提供数据库的访问密码.目前sqoop共支持4种输入密码的方式: 明文模式. 交互模式. 文件模式. 别名模式. 笔者使用的是CDH5.10里的sqoop,版本是1.4.6.在待会的演示中,我们将以mysql作为我们的关系型数据库. 明文模式 明文模式是最为简单的方式.我们可以在执行sqoop命令时使用--password参数,这样我们就可以直接在命令行中输入密码来访问数据库

MySQL root用户忘记密码解决方案(安全模式,修改密码的三种方式)

1.关闭正在运行的MySQL 2.启动MySQL的安全模式,命令如下: mysqld --skip-grant-tables or mysqld-nd --skip-grant-tables 3.使用root用户[免密码]登陆MySQL mysql -u root -p 输入密码时,直接回车 4.选择MySQL系统库 use mysql 5.查看当前系统用户root的密码 select user,host,password from user where user="root" 查看的

mysql 修改root密码的3种方式

1.mysqladmin -u root -h host -p password "newpassword" 2.使用root 账号登录上MySQL  执行>set password=password("newpassword"); 3.使用root账号登录上MySQL 执行> update user set password=password("newpassword") where User="root" an

Android中EditText显示明文与密文的两种方式

效果图   布局文件 <?xml version="1.0" encoding="utf-8"?> <!-- Android中EditText显示明文与密文的两种方式 --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/to

干货分享-Linux(RedHat/CentOS)下root密码找回的三种方式

一.第一种方式 1.开机. 2.插入光盘. 3.进入BIOS模式,调整光盘为第一启动项,保存并重启. 4.选择第三项"Rescue installed system",点击回车. 5.选择语言和键盘. 6.是否启动网络,选择不启动. 7.点击继续. 8.点击OK. 9.点击OK(大致意思:你的系统已经挂载到/mnt/sysimage目录) 10.选择第一行,进入SHELL,并点击OK. 11.检查root是否存在. 12.编辑配置文件,删掉第一行的x(光标移动到x底下,点击键盘上的de

关于如何记录数据更改记录的两种建表方式

title: 关于如何记录数据更改记录的两种建表方式 date: 2018-08-08 22:07:44 tags: 数据库 --- 当时要做的一个项目要包含一个权限管理功能,以为该系统中的所有人分配权限.而且这个权限管理的需求是可以把权限接近无限的下发(我感觉现实中是不会无限下发的(.???)ノ),这些都先不讲.因为有权限管理就涉及到用户分组的变动,权限的使用等,但是这些操作都是应该要记录下来的.于是有了两种方案. 1.通过一张单独的事件记录表来记录事件: id uid eventid eti