<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        MVC4制作網站教程第二章 用戶登陸2.2

        來源:懂視網 責編:小采 時間:2020-11-27 22:36:41
        文檔

        MVC4制作網站教程第二章 用戶登陸2.2

        MVC4制作網站教程第二章 用戶登陸2.2:一用戶 1.1用戶注冊 1.2用戶登陸 首先在Models里添加用戶登陸模型類UserLogin,該類只要用用戶名,密碼和驗證碼三個字段。 /// <summary> /// 用戶登陸模型 /// </summary> public class UserLogin { /
        推薦度:
        導讀MVC4制作網站教程第二章 用戶登陸2.2:一用戶 1.1用戶注冊 1.2用戶登陸 首先在Models里添加用戶登陸模型類UserLogin,該類只要用用戶名,密碼和驗證碼三個字段。 /// <summary> /// 用戶登陸模型 /// </summary> public class UserLogin { /

        一用戶 
        1.1用戶注冊 
        1.2用戶登陸 

        首先在Models里添加用戶登陸模型類UserLogin,該類只要用用戶名,密碼和驗證碼三個字段。 

        /// <summary>
         /// 用戶登陸模型
         /// </summary>
         public class UserLogin
         {
         /// <summary>
         /// 用戶名
         /// </summary>
         [Display(Name = "用戶名", Description = "4-20個字符。")]
         [Required(ErrorMessage = "×")]
         [StringLength(20, MinimumLength = 4, ErrorMessage = "×")]
         public string UserName { get; set; }
         /// <summary>
         /// 密碼
         /// </summary>
         [Display(Name = "密碼", Description = "6-20個字符。")]
         [Required(ErrorMessage = "×")]
         [StringLength(20, MinimumLength = 6, ErrorMessage = "×")]
         [DataType(DataType.Password)]
         public string Password { get; set; }
         /// <summary>
         /// 驗證碼
         /// </summary>
         [Display(Name = "驗證碼", Description = "請輸入圖片中的驗證碼。")]
         [Required(ErrorMessage = "×")]
         [StringLength(6, MinimumLength = 6, ErrorMessage = "×")]
         public string VerificationCode { get; set; }
        
         }
        
        

        在UserController里添加Login action; 代碼看如下:

        public ActionResult Login()
         {
         return View();
         }
         [HttpPost]
         public ActionResult Login(UserLogin login)
         {
         return View();
         }
        
        

        使用Cookie保存登陸賬號,密碼等信息,修改public ActionResult Login(UserLogin login)。修改完成代碼如下:

        [HttpPost]
         public ActionResult Login(UserLogin login)
         {
         //驗證驗證碼
         if (Session["VerificationCode"] == null || Session["VerificationCode"].ToString() == "")
         {
         Error _e = new Error { Title = "驗證碼不存在", Details = "在用戶注冊時,服務器端的驗證碼為空,或向服務器提交的驗證碼為空", Cause = "<li>你注冊時在注冊頁面停留的時間過久頁已經超時</li><li>您繞開客戶端驗證向服務器提交數據</li>", Solution = "返回<a href='" + Url.Action("Register", "User") + "'>注冊</a>頁面,刷新后重新注冊" };
         return RedirectToAction("Error", "Prompt", _e);
         }
         else if (Session["VerificationCode"].ToString() != login.VerificationCode.ToUpper())
         {
         ModelState.AddModelError("VerificationCode", "×");
         return View();
         }
         //驗證賬號密碼
         userRsy = new UserRepository();
         if (userRsy.Authentication(login.UserName, Common.Text.Sha256(login.Password)) == 0)
         {
         HttpCookie _cookie = new HttpCookie("User");
         _cookie.Values.Add("UserName", login.UserName);
         _cookie.Values.Add("Password", Common.Text.Sha256(login.Password));
         Response.Cookies.Add(_cookie);
         return RedirectToAction("Default","User");
         }
         else
         {
         ModelState.AddModelError("Message", "登陸失敗!");
         return View();
         }
        
         }
        
        

        在public ActionResult Login() 上右鍵添加強類型視圖

        完成后代的Login.cshtml 

        @model CMS.Models.UserLogin
        
        @{
         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.UserName):</div> 
         <div class="ctrl">@Html.EditorFor(model => model.UserName) 
         @Html.ValidationMessageFor(model => model.UserName) 
         @Html.DisplayDescriptionFor(model => model.UserName) 
         </div> 
         </dd> 
         <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">驗證碼:</div> 
         <div class="ctrl">
         @Html.TextBoxFor(model => model.VerificationCode) 
         @Html.ValidationMessageFor(model => model.VerificationCode) 
         <img id="verificationcode" alt="" src="@Url.Action("VerificationCode", "User")" /> 
         <a id="trydifferent" style="cursor: pointer">換一張</a> 
         </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>
        }
        
        <script type="text/javascript">
         $("#trydifferent").click(function () { 
         $("#verificationcode").attr("src", "/User/VerificationCode?" + new Date()); 
         })
        
        </script>
        @section Scripts { 
         @Scripts.Render("~/bundles/jqueryval") 
        }
        
        

        瀏覽器中查看一下登陸頁面

        點下登陸測試一下。OK登陸成功 

        驗證用戶是否已經登陸,這塊和權限驗證一起從AuthorizeAttribute繼承個自定義驗證類 

        在項目里添加Extensions文件夾,添加一個類UserAuthorizeAttribute 繼承自AuthorizeAttribute,重寫AuthorizeCore方法用來實現用戶是否已經登陸的驗證,權限驗證在寫權限功能時在補充 

        using Ninesky.Repository;
        
        namespace System.Web.Mvc
        {
         /// <summary>
         /// 用戶權限驗證
         /// </summary>
         public class UserAuthorizeAttribute :AuthorizeAttribute
         {
         /// <summary>
         /// 核心【驗證用戶是否登陸】
         /// </summary>
         /// <param name="httpContext"></param>
         /// <returns></returns>
         protected override bool AuthorizeCore(HttpContextBase httpContext)
         {
         //檢查Cookies["User"]是否存在
         if (httpContext.Request.Cookies["User"] == null) return false;
         //驗證用戶名密碼是否正確
         HttpCookie _cookie = httpContext.Request.Cookies["User"];
         string _userName = _cookie["UserName"];
         string _password = _cookie["Password"];
         httpContext.Response.Write("用戶名:"+_userName);
         if (_userName == "" || _password == "") return false;
         UserRepository _userRsy = new UserRepository();
         if (_userRsy.Authentication(_userName, _password) == 0) return true;
         else return false;
         }
         }
        }
        
        

        以后只要在需要登陸后才能操作的Action或Controller上加[UserAuthorize]就可實現驗證是否已經登錄了。
        退出功能,在UserController添加Logout Action 

        /// <summary>
         /// 退出系統
         /// </summary>
         /// <returns></returns>
         public ActionResult Logout()
         {
         if (Request.Cookies["User"] != null)
         {
         HttpCookie _cookie = Request.Cookies["User"];
         _cookie.Expires = DateTime.Now.AddHours(-1);
         Response.Cookies.Add(_cookie);
         }
         Notice _n = new Notice { Title = "成功退出", Details = "您已經成功退出!", DwellTime = 5, NavigationName="網站首頁", NavigationUrl = Url.Action("Index", "Home") };
         return RedirectToAction("Notice", "Prompt", _n);
         }
        

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        MVC4制作網站教程第二章 用戶登陸2.2

        MVC4制作網站教程第二章 用戶登陸2.2:一用戶 1.1用戶注冊 1.2用戶登陸 首先在Models里添加用戶登陸模型類UserLogin,該類只要用用戶名,密碼和驗證碼三個字段。 /// <summary> /// 用戶登陸模型 /// </summary> public class UserLogin { /
        推薦度:
        標簽: 用戶 2.2 用戶登陸
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 欧美色欧美亚洲另类二区| 亚洲色四在线视频观看| 亚洲精品美女久久久久久久| 无人在线观看完整免费版视频| 亚洲一区二区三区高清| 亚洲成A∨人片在线观看不卡 | 亚洲日本一区二区三区在线不卡| 亚洲国产成人手机在线观看| 热99re久久免费视精品频软件| 亚洲AV无码国产精品永久一区| 国产大片免费观看中文字幕| 高h视频在线免费观看| 99精品视频在线观看免费专区| 亚洲A∨无码一区二区三区| 84pao国产成视频免费播放| 91亚洲国产成人久久精品网址| 美女网站免费福利视频| 亚洲码和欧洲码一码二码三码| 99精品视频在线观看免费播放| 亚洲免费观看网站| 日韩一品在线播放视频一品免费| 黄色一级视频免费观看| 亚洲AV无码专区电影在线观看 | 国产亚洲AV手机在线观看| 免费人成激情视频在线观看冫| 国产精品无码免费视频二三区| 无人视频在线观看免费播放影院| 亚洲成人在线免费观看| 国产亚洲综合色就色| 18禁止看的免费污网站| 男人的天堂av亚洲一区2区| 国产精品亚洲成在人线| 亚色九九九全国免费视频| 农村寡妇一级毛片免费看视频 | 亚洲一区二区三区久久久久| 无码人妻一区二区三区免费看 | 黄色免费在线网站| 亚洲二区在线视频| 4338×亚洲全国最大色成网站| 精品一区二区三区无码免费视频| 亚洲人精品亚洲人成在线|