上代码

前端+js(懒得分文件了)

@{
ViewBag.Title = "MVC权限系统架构学习-登录";
Layout = "/Views/Shared/_LoadJsAndCss.cshtml";
}
<link rel="stylesheet" href="~/Content/styles/css/login.css">
<script type="text/javascript">
var contentPath = '@Url.Content("~")'.substr(0, '@Url.Content("~")'.length - 1);
var isIE = !!window.ActiveXObject;
var isIE6 = isIE && !window.XMLHttpRequest;
if (isIE6) {
window.location.href = contentPath + "/Error/ErrorMessage?message='浏览器不支持'";
}
//回车键
document.onkeydown = function (e) {
if (!e) e = window.event;
if ((e.keyCode || e.which) == 13) {
var btlogin = document.getElementById("btnlogin");
btnlogin.click();
}
}
//初始化
$(function () {
function loadTopWindow() {
if (window.top != null && window.top.document.URL != document.URL) {
window.top.location = document.URL; //这样就可以让登陆窗口显示在整个窗口了
}
}
$("#bodytop").load(loadTopWindow());
//提示信息
function formMessage(msg, type) {
$('.login_tips').parents('dt').remove();
var _class = "login_tips";
if (type == 1) {
_class = "login_tips-succeed";
}
$('.spanMess').prepend('<dt><div class="' + _class + '"><i style="color:red" class="fa fa-question-circle"></i>' + msg + '</div></dt>');
}
//点击切换验证码
$("#login_verifycode").click(function () {
$("#code").val('');
$("#login_verifycode").attr("src", contentPath + "/Login/VerifyCode?time=" + Math.random());
});
//登录按钮事件
$("#btnlogin").click(function () {
var $username = $("#name");
var $password = $("#password");
var $verifycode = $("#code");
if ($username.val() == "") {
$username.focus();
formMessage('请输入账号。');
return false;
} else if ($password.val() == "") {
$password.focus();
formMessage('请输入密码。');
return false;
} else if ($verifycode.val() == "") {
$verifycode.focus();
formMessage('请输入验证码。');
return false;
} else {
CheckLogin();
}
});
function CheckLogin() {
$(".formmargin").find('span').hide();
var name = $.trim($("#name").val());
var pass = $.trim($("#password").val());
var code = $.trim($("#code").val());
$.ajax({
type: 'POST',
url: '@Url.Action("LoginMvc", "Login")',
data: {
username: name,
password: pass,
VerificationCode: code
},
dataType: 'JSON',
success: function (data) {
if (data.type == 1) {
window.location.href = '@Url.Action("Index", "Home")';
} else {
formMessage(data.message);
$(".formmargin").find('span').show();
$("#login_verifycode").trigger("click");
}
}
});
} })
</script> <body id="bodytop">
<div class=" bg"></div>
<div class="container">
<div class="container-content">
<form class="form-panel" method="post">
<div class="logibbox">
<div class="form-head formmargin">
<h1>后台管理中心</h1>
</div>
<div class="form-content formmargin">
<div class="field">
<input type="text" minlength="2" class="input input-big" id="name" name="name" placeholder="登录账号" data-validate="required:请填写账号" />
</div>
<div class="field">
<input type="password" maxlength="16" class="input input-big" id="password" name="password" placeholder="登录密码" data-validate="required:请填写密码" />
</div>
<div class="field clearfix">
<input type="text" maxlength="4" class="inputs input-big" id="code" name="code" placeholder="填写右侧的验证码" data-validate="required:请填写右侧的验证码" />
<img id="login_verifycode" class="login_verifycode" src="~/Login/VerifyCode" alt="点击切换验证码"
title="点击切换验证码"/>
</div>
</div>
<div class="form-tail formmargin">
<input type="button" class="button input-big" id="btnlogin" value="登录">
<span class="spanMess"></span>
</div>
</div>
</form>
</div>
</div> <div class="copyright">
MVC权限架构系统学习
<br>
版权:世人皆萌
</div>
</body>

css文件

*{
margin:;
padding:;
font: inherit;
color: #333;
vertical-align: baseline;
}
*:before,*:after{
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
box-sizing:border-box;
}
.clearfix:after, .container:after{
content: " ";
display: block;
height:;
clear: both;
visibility: hidden;
overflow: hidden;
}
.bg{
width: 100%;
height: 100%;
position: absolute;
background: url(../images/bg.jpg);
}
.container-content{
margin: 150px auto;
width: 400px;
position: relative;
}
.form-panel{
border: 1px solid #ddd;
border-radius: 4px;
display: block;
}
.logibbox{
margin-top: -20px;
border:;
background: url(../images/tmbg-white.png);
/*background-color:#fafafa;*/
}
.logibbox .formmargin{
margin: 0 40px;
}
.form-panel .form-head{
margin: 20px;
padding-top: 20px;
display: block;
text-align: center;
/*font-weight: bold;*/
font-size: 24px;
}
.form-content{
display: block;
height: 230px;
}
.form-content .field{
height: 33.33%;
font-size: 14px;
font: inherit;
vertical-align: baseline;
}
.form-content .field .input{
display: inline-block;
width: 318px;/*294px 318px*/
line-height:;
}
.form-content .field .inputs{
display: inline-block;
width: 218px;/*196px 218px*/
line-height:;
}
.form-content .field .login_verifycode{
float: right;
margin-top: 1px;
display:inline-block;
text-align:center;
cursor:pointer;
width: 100px;
height: 36px;
padding-right:;
padding-left:;
/*border: 1px solid #d5d5d5;*/
font-size: 14px;
color: #727272;
background: white;
margin-left:-4px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
}
.form-content .input-big,
.form-tail .button{
padding:10px;
font-size:16px;
line-height: 24px;
border-radius:10px;
border:1px solid #d5d5d5;
box-sizing:border-box;
box-shadow:inset 0 1px 2px rgba(0,0,0,.1);
outline:none;
}
.form-content .input-big,
.form-tail .button:focus{
border:1px solid #afc2ec;
color:#4b4b4b
}
.form-content .input-big,
.form-tail .button[disabled]{
border:1px solid #d5d5d5;
background:#fbfbfb;
color:#9f9f9f;
/*cursor:not-allowed*/
}
.form-tail{
display: block;
height: 106px;
line-height: 106px;
}
.form-tail .button{
display: block;
width: 100%;
margin-top: 0px;
border: solid 1px #ddd;
border-color: #0ae;
border-radius: 4px;
color: #fff;
background-color: #0ae;
cursor: pointer;
}
.validation-summary-errors li{
height:43px;
line-height:43px;
width:auto;
color:red;
text-align:center;
display:block;
}
.copyright{text-align: center;color: #4b4b4b;position: absolute;top: 100%;margin-top: -60px;width: 97%;font-family: Microsoft Yahei;line-height:25px;}
.logibbox .formmargin .login_tips {
height: 44px;
line-height: 44px;
font-size: 14px;
text-align:center;
color:red;
box-shadow: none;
}

两张背景图

后台代码

        /// <summary>
/// 登录
/// </summary>
[HttpPost]
public ActionResult LoginMvc(op_users login)
{
string Verification = WebHelper.GetSession("session_verifycode");
if (Session["session_verifycode"].IsEmpty() || Verification != MD5PassWordProvider.CutMD5(login.VerificationCode.ToLower(), ))
{
login.ErrorMessage = "您输入的验证码不正确。";
return Content(new AjaxResult { type = ResultType.info, message = "您输入的验证码不正确" }.ToJson());
//return View(login);
}
if (login.password.Length > )
{
login.ErrorMessage = "您输入的密码不正确。";
return Content(new AjaxResult { type = ResultType.info, message = "您输入的密码不正确" }.ToJson());
}
var user = _userbll.Login(login.username, login.password);
if (user == null)
{
login.ErrorMessage = "您输入的用户名不存在或密码不正确。";
return Content(new AjaxResult { type = ResultType.info, message = "您输入的用户名不存在或密码不正确" }.ToJson());
}
if (user.IsExpire)
{
login.ErrorMessage = "该用户已经禁用。";
return Content(new AjaxResult { type = ResultType.info, message = "该用户已经禁用" }.ToJson());
}
WebHelper.WriteSession("session_FullName", user.FullName);
WebHelper.WriteSession("session_UserId", user.id);
return Content(new AjaxResult { type = ResultType.success, message = "登陆成功" }.ToJson());
}

整个登陆就OK

mvc 登陆界面+后台代码的更多相关文章

  1. .net MVC 登陆模块后台代码

    首先是拦截器 public class AuthLoginAttribute : ActionFilterAttribute { public bool IsLogin = true; /// < ...

  2. php截取后台登陆密码的代码

    php截取后台登陆密码的代码,很多时候黑客留了这样的代码,大家一定要注意下if($_POST[loginsubmit]!=){ //判断是否点了登陆按钮 $sb=user:.$_POST[userna ...

  3. 基于AOP的MVC拦截异常让代码更优美

    与asp.net 打交道很多年,如今天微软的优秀框架越来越多,其中微软在基于mvc的思想架构,也推出了自己的一套asp.net mvc 框架,如果你亲身体验过它,会情不自禁的说‘漂亮’.回过头来,‘漂 ...

  4. ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...

  5. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  6. ASP.NET MVC搭建项目后台UI框架—7、统计报表

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET M ...

  7. ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  8. 登陆界面Login

    最终界面:   XMAL 代码: <Grid > <Grid.RowDefinitions> <RowDefinition /> <RowDefinition ...

  9. .Net程序员安卓学习之路1:登陆界面

    任何编程学习起步均是HelloWorld,作为稍有>net编程经验的我们来说就跳过这步吧,咱们且从简单登录界面开始.先看看效果: 一.准备知识: 1. 安卓环境:安装好JDK,直接去官网下载AD ...

随机推荐

  1. 网络时间协议 (SNTP)

    sntp是简单网络时间协议(Simple Network Protocol)的客户端,可以用来查询或修正NTP服务器的时间和本地的时差. sntp可以以非交互模式运行或运行一个计划任务的脚本. snt ...

  2. spring项目启动错误——java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext

    最近在搭spring项目框架的时候,遇到一个很伤的问题,翻了很多帖,都报告说什么少spring-context包啊之类的,但实际上spring的那些依赖我根本没漏,下面是我的pom: <depe ...

  3. IO调度 | Linux块设备中的IO路径及调度策略

    当文件系统通过submit_bio提交IO之后,请求就进入了通用块层.通用块层会对IO进行一些预处理的动作,其目的是为了保证请求能够更加合理的发送到底层的磁盘设备,尽量保证性能最佳.这里面比较重要的就 ...

  4. Java同步数据结构之LinkedTransferQueue

    前言 LinkedTransferQueue是Java并发包中最强大的基于链表的无界FIFO阻塞传输队列.从JDK7开始出现,Doug Lea说LinkedTransferQueue是Concurre ...

  5. java中 label 配合 break continue 使用方法

    转 https://www.jianshu.com/p/7954b61bc6ee java中 label 配合 break continue 使用的其实是比较少的. 这种做法在业务代码中比较少见. 在 ...

  6. error C2086: “int WINGDIAPI”: 重定义

    1>------ 已启动生成: 项目: OSG_3_1_osgViewer应用基础, 配置: Debug x64 ------1>cl : 命令行 warning D9002: 忽略未知选 ...

  7. shell脚本中用到的计算

    在shell脚本中计算一般会涉及到let.$(()).$[].bc(另扩展expr).其中let.$(()).$[]都是用来做基本整数运算,bc可以用来做浮点运算. (1).let.$(()).$[] ...

  8. Python常用模块安装

    1. python操作MySQL数据库的依赖包MySQLdb ImportError: No module named MySQLdb 安装方式: yum install MySQL-python 2 ...

  9. typing-python用于类型注解的库

    简介 动态语言的灵活性使其在做一些工具,脚本时非常方便,但是同时也给大型项目的开发带来了一些麻烦. 自python3.5开始,PEP484为python引入了类型注解(type hints),虽然在p ...

  10. 【FFMPEG】VS2013编译ffmpeg

    原文:http://blog.csdn.net/uselym/article/details/49885867 由于VS2013支持c99了,所以,可以直接用vs2013进行ffmpeg的编译调试,而 ...