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");
}

=========待续

代码见网盘或群

学用MVC4做网站六后台管理:6.1.1管理员登录、6.1.2退出的更多相关文章

  1. 学用MVC4做网站六后台管理:6.1.3管理员修改密码

    6.1.3修改密码 需要两个action.一个是点击修改密码的链接要显示修改密码的分部视图(对话框形式):另一个是提交的处理action. 1.打开[AdministratorController]添 ...

  2. 学用MVC4做网站六:后台管理(续)

    关于后台的说明: 后台将会用easyui + ajax模式. 这里涉及两个问题,一个是使用easyui如何在前台验证模型的问题,另一个是ajax提交后返回数据. 一.Easyui验证 前台验证采用ea ...

  3. 学用MVC4做网站六后台管理:6.1管理员(续)

    接6.1 首先在~/Areas/Admin/Models文件夹添加管理员模型Administrator.cs using System.ComponentModel.DataAnnotations; ...

  4. MVC4做网站六后台管理:6.1.4管理员列表、添加及删除

    一.管理员列表 1.首先[AdministratorController]中添加返回分部视图的public PartialViewResult Index() /// <summary> ...

  5. MVC4做网站六后台管理:6.2网站信息设置

    用来实现网站标题.名称.关键字.描述.版权等信息的设置. 模型字段: 网站的设置信息前后台都要用到,所以要把模型方式Ninesky/Models文件夹中,代码如下: ///////////////// ...

  6. discuz管理员登录进入后台管理马上跳转到登录界面

    昨天尝试了一下这个discuz论坛,感觉还可以.今天刚刚用管理员账户进入后台管理,准备改一改界面熟悉一下,过不了10秒钟.老是马上就退出来了.我想起来了,昨天是在阿里云服务器上面直接登录这个管理员账号 ...

  7. 慕学在线网0.4_xadmin后台管理

    admin是基于Django开发的后台管理框架,方便,快捷,而且简单: 而xadmin就相当于admin的升级版,更加强大. 1.安装xadmin(源码安装方式) 教程 PS: - 卸载pip安装的x ...

  8. Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(函登录验证)

    上一篇 Asp.Net 中Grid详解两种方法使用LigerUI加载数据库数据填充数据分页  了解了LigerUI 中Grid的基本用法  现在结合上一篇的内容做一个简单的后台管理,当然也有前台的页面 ...

  9. django的admin后台管理

    Admin后台管理 要进入admin后台管理首先要创建管理员账户 createsuperuser 其中密码要大于8位 使用之前要到应用下的admin.py中注册要管理的模型表 from django. ...

随机推荐

  1. win10家庭版在线升级到win10专业版

    首先在win10自带的搜索框中输入"控制面板",在搜索结果的界面中单击"控制面板",进入控制面板界面. 在控制面板中点击"系统和安全",进入 ...

  2. 2016 windows安装phing:安装成功

    21:39 2016/7/212016 windows安装phing:安装成功注意:出现错误时就去更新pear:参见:http://www.cnblogs.com/pinnasky/archive/2 ...

  3. bzoj1266最短路+最小割

    本来写了spfa wa了 看到网上有人写Floyd过了 表示不开心 ̄へ ̄ 改成Floyd试试... 还是wa ヾ(。`Д´。)原来是建图错了(样例怎么过的) 结果T了 于是把Floyd改回spfa 还 ...

  4. The Practical Guide to Empathy Maps: 10-Minute User Personas

    That’s where the empathy map comes in. When created correctly, empathy maps serve as the perfect lea ...

  5. spark - tasks is bigger than spark.driver.maxResultSize

    Error ERROR TaskSetManager: Total size of serialized results of 8113 tasks (1131.0 MB) is bigger tha ...

  6. 编译链接 C++

    预处理之后的源文件被称为一个编译单位,也即编译器的工作对象.为了使编译能够进行,程序员必须提供各种程序其他部分的声明来孤立分析一个编译单位.所有名字空间,类,函数都应该在他们所在的编译单位中有声明,所 ...

  7. [转]Tesseract 3.02中文字库训练

    下载chi_sim.traindata字库下载tesseract-ocr-setup-3.02.02.exe 下载地址:http://code.google.com/p/tesseract-ocr/d ...

  8. 实现textarea高度自适应内容,无滚动条

    最近接触到一个很好用的js插件,可以实现textarea高度随内容增多而改变,并且不显示滚动条,推荐给大家: http://www.jacklmoore.com/autosize/

  9. PowerDesigner PDM生成sql脚本时:表的名称和表里面的字段名称都有引号解决。。。

    PowerDesigner PDM生成sql脚本时:表的名称和表里面的字段名称都有引号解决... 1.当你的PowerDesigner 是新安装时,你得设置可能就会出现一些问题,在这里比如:PDM生成 ...

  10. es6入门教程完整版

    ECMAScript 6入门 <ECMAScript 6入门>是一本开源的JavaScript语言教程,全面介绍ECMAScript 6新引入的语法特性. 作者:阮一峰 授权:署名-非商用 ...