學用MVC4做網站六后台管理:6.1.1管理員登錄、6.1.2退出


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用來輸入用戶名密碼。

image

再在控制器中添加[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”,登錄失敗則彈出對話框提示消息。

image

 

正確管理員賬號admin,密碼000000

2、管理員退出

添加[Logout()]action,設置AdminName為空,然后跳轉的登錄界面,很簡單。

/// <summary>
        /// 退出登錄
        /// </summary>
        /// <returns></returns>
        public ActionResult Logout()
        {
            AdministratorController.AdminName = string.Empty;
            return RedirectToAction("Login","Administrator");
        }

=========待續

代碼見網盤或群


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM