学用MVC4做网站一:修改密码1.3

news/2024/5/19 8:46:44/文章来源:https://blog.csdn.net/weixin_30399821/article/details/96986370

一用户

1.1用户注册

1.2用户登录

1.3修改密码

修改密码会用到一个UserChangePassword 模型类,先添加UserChangePassword类

/// <summary>/// 用户修改密码模型/// </summary>
    [NotMapped]public class UserChangePassword{/// <summary>/// 原密码/// </summary>[Display(Name = "原密码")][Required(ErrorMessage = "×")][StringLength(20, MinimumLength = 6, ErrorMessage = "×")][DataType(DataType.Password)]public string Password { get; set; }/// <summary>/// 新密码/// </summary>[Display(Name = "新密码", Description = "6-20个字符。")][Required(ErrorMessage = "×")][StringLength(20, MinimumLength = 6, ErrorMessage = "×")][DataType(DataType.Password)]public string NewPassword { get; set; }/// <summary>/// 确认密码/// </summary>[Display(Name = "确认密码", Description = "再次输入密码。")][Compare("NewPassword", ErrorMessage = "×")][DataType(DataType.Password)]public string ConfirmPassword { get; set; }}

用到了数据库的更新,先打开UserRepository.cs 修改Update函数

/// <summary>/// 更新用户信息/// </summary>/// <param name="user"></param>/// <returns></returns>public override bool Update(User user){dbContext.Users.Attach(user);dbContext.Entry<User>(user).State = System.Data.EntityState.Modified;if (dbContext.SaveChanges() > 0) return true;else return false;}

在修改密码时需要查出用户信息并更新,需要添加Find(string UserName) 函数

/// <summary>/// 查找用户/// </summary>/// <param name="UserName">用户名</param>/// <returns></returns>public User Find(string UserName){return dbContext.Users.SingleOrDefault(u => u.UserName == UserName);}

好了打开UserController,添加ChangePassword Action

/// <summary>/// 修改密码/// </summary>/// <returns></returns>
        [UserAuthorize]public ActionResult ChangePassword(){return View();}[HttpPost][UserAuthorize]public ActionResult ChangePassword(){return View();}

添加强类型(UserChangePassword)视图,在视图中添加三个文本框,修改后的视图代码

@model Ninesky.Models.UserChangePassword
@{ ViewBag.Title = "修改密码";Layout = "~/Views/Shared/_Layout.cshtml";
}<div class="banner"><img src="~/Skins/Default/Images/banner.jpg" />
</div>@using (Html.BeginForm())
{@Html.ValidationSummary(true)<div class="form"><dl><dt>修改密码</dt><dd><div class="label">@Html.LabelFor(model => model.Password):</div><div class="ctrl">@Html.PasswordFor(model => model.Password)@Html.ValidationMessageFor(model => model.Password)@Html.DisplayDescriptionFor(model => model.Password)</div></dd><dd><div class="label">@Html.LabelFor(model => model.NewPassword):</div><div class="ctrl">@Html.PasswordFor(model => model.NewPassword)@Html.ValidationMessageFor(model => model.NewPassword)@Html.DisplayDescriptionFor(model => model.NewPassword)</div></dd><dd><div class="label">@Html.LabelFor(model => model.ConfirmPassword):</div><div class="ctrl">@Html.PasswordFor(model => model.ConfirmPassword)@Html.ValidationMessageFor(model => model.ConfirmPassword)@Html.DisplayDescriptionFor(model => model.ConfirmPassword)</div></dd><dd><div class="label"></div><div class="ctrl"><input type="submit" value="修改密码" />@Html.ValidationMessage("Message")</div></dd></dl><div class="clear"></div></div>
}
@section Scripts {@Scripts.Render("~/bundles/jqueryval")
}

修改UserController中[HttpPost]方式的ChangePassword()以实现修改密码,修改完成的代码如下:

[HttpPost][UserAuthorize]public ActionResult ChangePassword(UserChangePassword userChangePassword){userRsy = new UserRepository();if (userRsy.Authentication(UserName, Common.Text.Sha256(userChangePassword.Password)) == 0){var _user = userRsy.Find(UserName);if (_user == null){Error _e = new Error { Title = "修改密码失败", Details = "修改密码时,系统查询不到用户信息", Cause = Server.UrlEncode("<li>用户在修改密码界面停留的时间过长,登录信息已失效。</li><li>系统错误。</li>"), Solution = Server.UrlEncode("<li>返回<a href='" + Url.Action("ChangePassword", "User") + "'>修改密码</a>页面,输入正确的信息后重新注册</li><li>联系网站管理员</li>") };return RedirectToAction("Error", "Prompt", _e);}_user.Password = Common.Text.Sha256(userChangePassword.NewPassword);if (userRsy.Update(_user)){Notice _n = new Notice { Title = "成功修改密码", Details = "您已经成功修改密码,请牢记您的新密码!", DwellTime = 5, NavigationName = "登陆页面", NavigationUrl = Url.Action("Login", "User") };return RedirectToAction("Notice", "Prompt", _n);}else{Error _e = new Error { Title = "修改密码失败", Details = "修改密码时,更新数据库失败!", Cause = Server.UrlEncode("<li>系统错误。</li>"), Solution = Server.UrlEncode("<li>返回<a href='" + Url.Action("ChangePassword", "User") + "'>修改密码</a>页面,输入正确的信息后重新注册</li><li>联系网站管理员</li>") };return RedirectToAction("Error", "Prompt", _e);}}else{ModelState.AddModelError("Password", "原密码不正确,请重新输入");return View();}}

在上面的代码中用到了一个UserName属性,这个是在UserController添加的属性用于返回Cookie中保存的用户名

/// <summary>/// 获取用户名/// </summary>public string UserName { get {HttpCookie _cookie = Request.Cookies["User"];if (_cookie == null) return "";else return _cookie["UserName"];}}

好了,浏览器中预览一下

image

测试一下,OK,大功告成!

转载于:https://www.cnblogs.com/mzwhj/archive/2012/11/01/2748310.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_761925.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何快速增加百度相关域提升网站权重

早上在论坛seo版块&#xff0c;发现有人问为什么domain&#xff1a;域名后在结果里&#xff0c;怎么会出现网站本身的页面呢?如图&#xff1a; 这让我联想我们在查询网站数据的时候&#xff0c;总会出现如图下面显示&#xff0c;百度反链多少&#xff0c;点击链接就是domain&a…

优化杭州某著名电子商务网站高并发千万级大型数据库经验之- 内存性能

好久没写博客了&#xff0c;一方面是日常工作繁忙&#xff0c;另外一方面是想更多的时间陪陪家里人&#xff0c;享受春天的美好时光&#xff0c;同时还在写一本《程序员&#xff0c;你伤不起》的一本书要由人民邮电出版社出版&#xff1b;我的性格可能也跟大多数程序员类似吧&a…

方维系统,在tip.htm和inc\u\u_menu.htm调用账号绑定状态,已绑定的可链接到该用户在对应网站的地址...

方维系统&#xff0c;在tip.htm和inc\u\u_menu.htm调用账号绑定状态&#xff0c;已绑定的可链接到该用户在对应网站的地址 在tip.htm和inc\u\u_menu.htm调用账号绑定状态&#xff0c;已绑定的可链接到该用户在对应网站的地址 实现类似这样的效果 举例&#xff1a;u_menu.htm&am…

思维导图形式带你读完《大型网站技术架构》上

最近跟着视频做的一个网站用到了soa架构&#xff0c;nginx反向代理&#xff0c;redis集群&#xff0c;dubbo等等优化网站性能的技术。所以决定看一下《大型网站技术架构》这本书&#xff0c;这本书真心感觉不错&#xff0c;里面没有什么代码和晦涩难懂的知识&#xff0c;一般人…

礼品代发网站源码_礼品快递代发——如何挑选靠谱的礼品代发网站?

电商老人都知道&#xff0c;只有礼品单以及拍A发B才能提供最真实的物流信息。但卖家自己快递礼品的话&#xff0c;除了需要快递成本&#xff0c;还有采购成本、仓储成本、人工打包费用、快件包装费用等&#xff0c;极端条件下甚至会产生快件破损丢失的情况&#xff0c;综合成本…

微软网站打不开_更换空间影响网站优化?这样做比原先排名更靠前!

1马上就是清明小长假了&#xff0c;然后是五一小长假plus&#xff0c;再接下来就是端午小长假...接踵而至的各种小长假期间&#xff0c;我们要考虑竞价推广投放问题(这个问题&#xff0c;老牛之前有跟大家讨论过&#xff0c;点此爬楼查看)。然而网站的竞价广告提前设置好了&…

python 判断 网站是否是动态_Python语法速览与实战清单,不知道大家学的怎么样了?...

基础语法Python 是一门高阶、动态类型的多范式编程语言&#xff1b;定义 Python 文件的时候我们往往会先声明文件编码方式:继续给大家分享我的学习地址&#xff0c;我也不想多说了&#xff0c;有需要的就进来吧&#xff01;让我来带大家一起学习&#xff01;# 指定脚本调用方式…

网站克隆工具_Kali Linux工具篇十三:网站克隆技巧Httrack使用技巧

本公众号所有分享&#xff0c;仅做学习交流&#xff0c;切勿用于任何不法用途&#xff01;一、HTTrack是什么&#xff1f;HTTrack 是一个免费并易于使用的线下浏览器工具&#xff0c;全称是 HTTrack Website Copier for Windows&#xff0c;它能够让你从互联网上下载指定的网站…

Asp.Net与SEO – 庞大的反向链接网络(二)

上篇文章提到反向链接的概念&#xff0c;现在我就从增加反向链接的方法来谈谈作为一个程序员应该怎么为增加反向链接做一些SEO工作。 1. 内部链接优化对于很多大型网站&#xff0c;由于网站自身都拥有几百万个网页&#xff0c;所以对网站内部链接进行重新优化构架之后&#xff…

网站启用GZip压缩后,速度快了3倍!

GZip压缩&#xff0c;是一种网站速度优化技术&#xff0c;也是一把SEO优化利器&#xff0c;许多网站都采用了这种技术&#xff0c;以达到提升网页打开速度、缩短网页打开时间的目的。 本文是一篇研究性文章&#xff0c;将通过某个案例来给大家显示网站采用GZip压缩前后的对比效…

夺命雷公狗ThinkPHP项目之----企业网站24之网站前台获取当前栏目和顶级栏目

我们现在要实现的是取出网站当前栏目名称和顶级分类名称&#xff0c;如下所示&#xff1a; 列表页的和单页的不能总是写死的吧&#xff1f;&#xff1f; 我能就要想办法去让他变活的才可以解决问题噢&#xff0c;我们已经有了他的cate_id &#xff0c;然后我们就可以通过cate_i…

宝塔面板快速配置网站SSL证书(HTTPS)

既然已经知道用宝塔来搭网站&#xff0c;那我就默认看本文的看官们都已经在宝塔里部署好网站了~本文只记录如何将网站从http转为更为安全的https 1. 在宝塔面板里选择想要上锁的网站&#xff0c;点击设置 2. 先找到ssl, 然后选择其他证书&#xff08;也可以是宝塔ssl、lets E…

css background 充满自适应_打造自适应网站只用一个CSS属性就够了

用一个CSS属性创建一个响应式网站&#xff0c;让我们来看看它是如何做到的。 以这个模板为例&#xff0c;没有应用css属性。 使用 clamp() CSS函数&#xff0c;我们可以创建仅具有一个属性的响应式网站。现在添加魔术CSSclamp(minimum, preferred, maximum);在这里&#xff01;…

python 爬虫 小程序_使用Python爬取诗词网站的数据在小程序中使用

在开发个人小程序的时候想找些诗词的内容放在小程序上面&#xff0c;所以想到用Python爬取网上的诗词数据。找到这个诗词网站。小程序中的截图如下&#xff1a;爬取流程 在诗词网站查看诗词数据的结构&#xff0c;在代码中使用lxml.etree查找到列表的父标签&#xff0c;再遍历查…

使用Let's Encrypted HPPTS你的网站

1、前言 最近&#xff0c;有同事咨询我&#xff0c;怎么样使用Lets Encrypted部署数字证书&#xff0c;于是&#xff0c;结合自己之前的实践&#xff0c;简单总结下。 2、HTTPS的优势 什么加密&#xff0c;防篡改&#xff0c;防广告植入什么的&#xff0c;这个就不多说了。这里…

安卓传感器的简单使用,kotlin搭建网站

前言 这学期学习了移动软件开发课程后&#xff0c;自己尝试实现了个小功能&#xff0c;就是利用手机自带的加速传感器实现个简单的计步器。 介绍一些传感器的api 一般来说&#xff0c;智能机中都支持一下常见的传感器 如&#xff1a;温度传感器&#xff08;tempreture sensor…

html for循环给href传递变量_「基于Python技术的智慧中医商业项目」Django前端网站篇-2.HTML设计开发...

如果你对中医感兴趣欢迎留言讨论&#xff0c;觉得我的内容对你有帮助的话&#xff0c;能够请我喝一杯沪上阿姨不禁万分感谢。内容简介我这里使用的是模板之家下载的模板&#xff0c;可以根据自己的实际喜好进行下载对应的模板进行更改就可以了。由于我不会写前端&#xff0c;所…

网站服务器数据库关系图,学会sql数据库关系图(Petshop)

很久以前就知道微软的Petshop的很经典&#xff0c;昨天抽出时间去学习&#xff0c;一开始还真的不适应&#xff0c;什么成员资格&#xff0c;还真的看不太懂&#xff0c;运行petshop想从登陆学起&#xff0c;但是用户名和密码都不知道&#xff0c;后来发现有更注册的页面&#…

阿里云ECS Linux使用 Web 服务实例配置网站及绑定域名

Nginx 服务绑定域名 以 YUM 安装的 Nginx 为例&#xff1a; 执行命令 vi /etc/nginx/nginx.conf 编辑 Nginx 的配置文件&#xff0c;将默认的server {...} 配置修改为以下内容&#xff1a; server { listen 80 default_server; server_name www.chinaobd2.com; root /home/web1…

gdb+linux+查看变量,GDB查看数据 - Linux编程基础详细教程_Linux编程_Linux公社-Linux系统门户网站...

查看栈信息当程序被停住了&#xff0c;首先要确认的就是程序是在哪儿被断住的。这个一般是通过查看调用栈信息来看的。在gdb中&#xff0c;查看调用栈的命令是backtrace&#xff0c;可以简写为bt。(gdb) bt#0 pop () at stack.c:10#1 0x080484a6 in main () at main.c:12也可以…