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. WebRTC通信流程

    WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能.而且WebRTC项目是开源的,我们可以借助WebRTC源码快速构 ...

  2. 谷歌浏览器如何查看或获取Cookie字符串

    注:此博客仅供非web开发人员查看,以下内容都基于谷歌浏览器. 在网页空白处点击鼠标右键,在弹出菜单中选择[审查元素],可以看到网页下方出现审查元素相关界面. 在审查元素相关界面,点击[Network ...

  3. Artifact Project3:war exploded: Error during artifact deployment. See server log for details.

    第一次建Struts2 idea遇到了这个问题,很莫名其妙,搞了几天没解决,几乎要放弃idea了.最后解决的时候也很突然.回想解决的过程,大致如下. 第一种情况:File->Project St ...

  4. php和ajax 服务器端做轮询推送(定义)

    基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性. 一.什么是长连接.长轮询? 用通俗易 ...

  5. sql 连接数不释放 ,Druid异常:wait millis 40000, active 600, maxActive 600

    Hibernate + Spring + Druid 数据库mysql 由于配置如下 <bean id="dataSource" class="com.alibab ...

  6. CentOS利用postfix搭建邮件服务器

    之前我用nodemailer通过163邮箱来发送邮件,不过没过几天就一直ETIMEDOUT,不知道什么原因,想着还是自己搭一个来发邮件可能靠谱点(flag?) 安装postfix CentOS 7 自 ...

  7. 输入/输出系统的四种不同工作方式对CPU利用率比较

    程序控制工作方式:输入/输出完全由CPU控制,整个I/O过程中CPU必须等待其完成,因此对CPU的能力限制很大,利用率较低 程序中断工作方式:CPU不再定期查询I/O系统状态,而是当需要I/O处理时再 ...

  8. centos7开机自动联网设置

    /etc/sysconfig/network-scripts/目录下ifcfg-eth0这个 文件,把ONBOOT="no"改为yes

  9. *HDU 1115 计算几何

    Lifting the Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  10. Xcode 改时间问题 lua代码没反应问题

    Xcode 改时间问题  rm -fr $_TARGET_BUILD_CONTENTS_PATH/$1/*