1、管理員登錄
在6.1中已添加控制器【AdministratorController】
在控制器中添加[Login()]action,用來顯示登錄頁面
/// <summary> /// 登錄 /// </summary> public ActionResult Login() { return View(); }
右鍵添加視圖Login.cshtml
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>管理員登陸</title> @Styles.Render("~/Css/Admin") @Styles.Render("~/Css/Admin/Easyui") @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/Scripts/Easyui") @Scripts.Render("~/Areas/Admin/Scripts/Administrator.js") </head> <body> <div id="wrapper"> @using (Html.BeginForm()) { @Html.ValidationSummary(true) <div class="easyui-panel" title="請登錄" style="width: 280px; height: 180px"> <dl> <dd> <div> <label>用戶名</label> </div> <div> <input id="adminName" name="adminName" type="text" placeholder="請輸入用戶名" required maxlength="20" /> </div> </dd> <dd> <div> <label>密碼</label> </div> <div> <input id="passWord" name="passWord" type="password" placeholder="請輸入密碼" required maxlength="20" /> </div> </dd> <dd> <div id="admin_login_msg" style="color:red;font-weight:bold"></div> <div> <button type="button" onclick="AdminLogin('@Url.Action("Index","Home")')">登錄</button><button type="button" style="margin-left:40px" onclick="window.location.href='@Url.Action("Index", "Home", new { area = "" })'"> 離開</button> </div> </dd> </dl> </div> } </div> <script type="text/javascript"> var lbox = $("#wrapper"); var x = ($(window).width() - 280) / 2; var y = ($(window).height() - 180) / 2; lbox.css("padding-top", y).css("padding-left", x); </script> </body> </html>
如圖 ,在頁面中居中顯示一個easyui-panel用來輸入用戶名密碼。
再在控制器中添加[Login(string adminName,string passWord)]action,用來處理管理員登錄事件(返回類型JsonData)。
[HttpPost] public JsonResult Login(string adminName,string passWord) { JsonData _jdata = new JsonData(); adminName = Server.HtmlEncode(adminName); passWord = Ninesky.Common.Sha256(Server.HtmlEncode(passWord)); int _code = adminRsy.Authentication(adminName, passWord); if (_code == 1) { AdministratorController.AdminName = adminName; _jdata.Success = true; _jdata.Msg = "登錄成功!"; } else if (_code == 0) { _jdata.Success = false; _jdata.Msg = "密碼錯誤!"; } else if (_code == -1) { _jdata.Success = false; _jdata.Msg = "管理員賬號不存在!"; } else { _jdata.Success = false; _jdata.Msg = "發生未知錯誤,請刷新后重新登錄!"; } return Json(_jdata); }
再在文件夾~/Areas/Admin/Scripts中添加Administrator.js文件(這個文件中寫所有與管理員操作相關的js函數)。
先寫一個點擊登錄的函數function AdminLogin(url),url是登錄成功后跳轉的頁面。
//登錄 function AdminLogin(url) { $('form').form('submit', { success: function (data) { var rt = jQuery.parseJSON(data); if (rt.Success) location.href = url; else { var msg = ""; if (rt.MsgLsit != undefined) { $.each(rt.MsgLsit, function (i, val) { msg += "<li>" + i + ":" + val + "</li>"; }); } if (msg != "") msg = rt.Msg + "<br /> <p> 原因如下:" + "<ul>" + msg + "</ul></p>"; else msg = rt.Msg; $.messager.alert("登錄失敗", msg, "error"); } } }); return false; }
當點擊登錄按鈕時調用AdminLogin('@Url.Action("Index","Home")' 登錄成功則跳轉到“~/areas/admin/Home”,登錄失敗則彈出對話框提示消息。
正確管理員賬號admin,密碼000000
2、管理員退出
添加[Logout()]action,設置AdminName為空,然后跳轉的登錄界面,很簡單。
/// <summary> /// 退出登錄 /// </summary> /// <returns></returns> public ActionResult Logout() { AdministratorController.AdminName = string.Empty; return RedirectToAction("Login","Administrator"); }
=========待續
代碼見網盤或群