手机版

MVC4制作网站教程第二章用户密码修改2.3

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

一用户1.1用户注册1.2用户登录1.3修改密码

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

///摘要///用户修改密码模型////摘要[未映射]公共类UserChangePassword { ///摘要///原密码////摘要[显示(名称='原密码)][必选(错误消息='')][字符串长度(20,最小长度=6,错误消息='')][数据类型(数据类型.密码])公共字符串密码{ get设置;} ///摘要///新密码////摘要[显示(名称='新密码,描述='6-20个字符)][必需(错误消息='')][字符串长度(20,最小长度=6,错误消息='')][数据类型(数据类型.密码])公共字符串新密码{ get设置;} ///摘要///确认密码////摘要[显示(名称='确认密码,描述='再次输入密码)][比较('新密码,错误消息='')][数据类型(数据类型.密码])公共字符串确认密码{获取设置;} }用到了数据库的更新,先打开UserRepository.cs修改更新函数

///摘要///更新用户信息////summary////param name=' User '/param////返回/返回公共覆盖bool Update(用户用户用户){ dbContext .用户。附加(用户);数据库上下文.用户。状态=系统。数据。实体状态。已修改;if (dbContext .保存更改(0)返回真实的否则返回false}在修改密码时需要查出用户信息并更新,需要添加查找(字符串用户名)函数

///摘要///查找用户////summary///param name=' UserName '用户名/param/返回/返回公共用户查找(字符串用户名){ 0返回数据库上下文.用户。singletordefault(u=u . UserName==UserName);}好了打开用户控制器,添加更改密码操作

///摘要///修改密码////summary///returns/returns[用户权限]公共操作结果更改密码(){ return View();}[httpset][user authorize]公共操作结果更改密码(){ return View();}添加强类型(用户更改密码)视图,在视图中添加三个文本框,修改后的视图代码

@模型尼尼微。模型。用户更改密码@{视图包标题='修改密码;布局=' ~/视图/共享/_布局。“cshtml”;} div class=' banner ' img src=' http : ~/Skins/Default/Images/banner。jpg '/div @使用(Html .begin inform()){ @ Html .ValidationSummary(true)div class=' form ' dl dt修改密码/dt dd div class='label'@Html .标签(型号=型号.密码):/div div class='ctrl'@Html .PasswordFor(model=model .密码)@Html .ValidationMessageFor(model=model .密码)@Html .显示(模型=模型1)的描述.密码)/div /dd dd div class='label'@Html .标签(型号=型号.new PassPort):/div div class=' ctrl ' @ Html .PasswordFor(model=model .new PassPort)@ Html .ValidationMessageFor(model=model .new PassPort)@ Html .显示(模型=模型1)的描述.new PassPort)/div/DD DD div class=' label ' @ Html .标签(型号=型号.确认密码):/div div class=' ctrl ' @ Html .PasswordFor(model=model .确认密码)@Html .ValidationMessageFor(model=model .确认密码)@Html .显示(模型=模型1)的描述.确认密码)/div/DD/DD div class=' label '/div class=' ctrl '输入类型='submit '值='修改密码/@Html .验证消息('消息')/div/DD/dl div class=' clear '/div/div } @节脚本{ @脚本.渲染(' ~/bundle/jqueryval ')}修改用户控制器中[HttpSet]方式的更改密码()以实现修改密码,修改完成的代码如下:

[httpset][user authorize]公共操作结果更改密码(用户更改密码用户更改密码){ usersy=new user repository();if(usersy .身份验证(用户名,通用。文本Sha256(用户更改密码。密码))==0){ var _ user=usersy .查找(用户名);if (_user==null) { Error _e=新错误{ Title='修改密码失败'详细信息='修改密码时,系统查询不到用户信息,原因=服务器UrlEncode('li用户在修改密码界面停留的时间过长,登录信息已失效/莉莉系统错误/Li’),解决方案=服务器UrlEncode('li返回a href=' .操作('更改密码','用户)修改密码/a页面,输入正确的信息后重新注册/莉莉联系网站管理员/Li’)};返回RedirectToAction('Error ',' Prompt ',_ e);} _用户。密码=通用。文本Sha256(用户更改密码. new PassPort);if(usersy .更新(_用户)){ 0通知_n=新通知{标题='成功修改密码'详细信息='您已经成功修改密码,请牢记您的新密码!停留时间=5,导航名称='登陆页面,NavigationUrl=Url .操作('登录','用户')};返回RedirectToAction('Notice ',' Prompt ',_ n);} else { Error _e=新错误{ Title='修改密码失败'详细信息='修改密码时,更新数据库失败!',原因=服务器UrlEncode('li系统错误/Li’),解决方案=服务器UrlEncode('li返回a href=' .操作('更改密码','用户)修改密码/a页面,输入正确的信息后重新注册/莉莉联系网站管理员/Li’)};返回RedirectToAction('Error ',' Prompt ',_ e);} } else { ModelState .添加模式错误('密码','原密码不正确,请重新输入');返回视图();} }在上面的代码中用到了一个用户名属性,这个是在用户控制器添加的属性用于返回饼干中保存的用户名

///摘要///获取用户名////摘要公共字符串用户名{ get { httpookie _ cookie=Request .饼干用户'];if (_cookie==null)返回"";else return _ cookie[' UserName '];} }好了,浏览器中预览一下

测试一下,好的,大功告成!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:MVC4制作网站教程第二章用户密码修改2.3是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。