1.HTML部分:

    <form id="form1" runat="server">
    <script src="../Script/jquery-v1.10.2.js" type="text/javascript"></script>
    <script src="login.js" type="text/javascript"></script>
    <div class="" style="height: 160px">
        <div>
            <label for="userName">
                帐号:</label>
            <input type="text" name="userName" />
        </div>
        <div>
            <label for="password">
                密码:</label>
            <input type="password" name="password" />
        </div>
        <input type="submit" id="btnSumit" value="登录" />
        <p class="msg"> </p>
    </div>
    </form>
2.引入登录插件:login.js
/*!
* 插件名称:登录插件封装,使用方法: 
      $('#form1').login({
            url: "LoginHandler.ashx",//处理登录验证逻辑的Url
            userName: $("input[name='userName']"),//用户名输入框
            password: $("input[name='password']"),//密码输入框
            msg: $(".msg"),                                        //提示信息
            button: $("#btnSumit")                            //提交按钮
        });  
*/
(function ($) {
    $.fn.login = function (option) {
        var defaults = {
            url: '/account/login/',
            msg: $(this).find('.msg'),
            userName: $(this).find("input[name='userName']"),
            password: $(this).find("input[name='password']"),
            button: $(this).find("#button")
        };
        var options = $.extend(defaults, option);
        var errMsg = {
            'inputUserName': '请输入用户名',
            'inputPassword': '请填写登录密码',
            'passwordLength': '密码应在6-32位字符内',
            'noreg': '此账号未注册',
            'inviladUserName': '帐号不存在',
            'accountNotMatch': '账号密码不匹配',
            'userLocked': '帐号锁定中,暂时无法登录',
            'serverdown': '服务器繁忙,请稍后再试'
        };
        //提交数据
        function submit() {
            var userNameInput = $.trim(options.userName.val());
            var passwordInput = $.trim(options.password.val());
            if (userNameInput == '') {
                showMsg('登录名不能为空');
                options.userName.focus();
                return;
            }
            if (passwordInput == '') {
                showMsg('密码不能为空');
                options.password.focus();
                return;
            }
            $.ajax({
                type: "POST",
                url: options.url,
                data: "userName=" + userNameInput + "&password=" + passwordInput,
                success: function (msg) {
                    var result = eval("[" + msg + "]")[0];
                    if (result.status == "ok") {
                        //登录成功处理
                        showMsg("登录成功....");
                    } else {
                        showMsg(errMsg[result.status]);
                    }
                }
            });
        }
        //显示错误信息
        function showMsg(msg) {
            options.msg.html(msg);
        }
        //绑定按钮事件
        options.button.bind('click', function () {
            submit();
            return false;
        });
    };
})(jQuery);
3.页面调用插件:
    <script type="text/javascript">
        $('#form1').login({
            url: "AjaxLogin.aspx",
            userName: $("input[name='userName']"),
            password: $("input[name='password']"),
            msg: $(".msg"),
            button: $("#btnSumit")
        });
    </script>
4.后台处理逻辑(请根据实际需求做相应调整)
using System;
using System.Web;
using System.Web.UI;
namespace Whir.SiteFactory.Website.Admin.Account
{
    public partial class AjaxLogin : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string status = ProcessLogin();
            Response.Clear();
            Response.Write(status);
            Response.End();
        }
        private string ProcessLogin()
        {
            try
            {
                string userName = HttpContext.Current.Request.Form["userName"];
                string password = HttpContext.Current.Request.Form["password"];
                if (string.IsNullOrEmpty(userName))
                {
                    return "{status:'inputUserName'}"; //请输入用户名
                }
                if (string.IsNullOrEmpty(password))
                {
                    return "{status:'inputPassword'}"; //请填写登录密码
                }
                if (password.Length < 6 || password.Length > 32)
                {
                    return "{status:'passwordLength'}"; //密码应在6-32位字符内
                }
                //var user = UserService.GetUserByName(userName);
                //if (user == null)
                //{
                //    return "{status:'inviladUserName'}"; //帐号不存在
                //}
                //if (user.IsLocked)
                //{
                //    return "{status:'userLocked'}"; //帐号锁定中,暂时无法登录
                //}
                //if (user.Password.ToLower() != password.ToMd5().ToLower())
                //{ 
                //    return "{accountNotMatch:'ok'}"; //账号密码不匹配
                //}
                //其他操作:
                //写入客户端cookie
                //登录日志
                return "{status:'ok'}"; //登录成功
            }
            catch (Exception ex)
            {
                return "{status:'serverdown'}"; //服务器繁忙,请稍后再试
            }
        }
    }
}
完整Demo下载:


版权声明:本文为博主原创文章,未经博主允许不得转载。

网站通用登录模块代码 分类: ASP.NET 2014-12-06 10:49 615人阅读 评论(0) 收藏的更多相关文章

  1. JavaScript、Ajax与jQuery的关系 分类: C1_HTML/JS/JQUERY 2014-07-31 10:15 3388人阅读 评论(0) 收藏

    简单总结: 1.JS是一门前端语言. 2.Ajax是一门技术,它提供了异步更新的机制,使用客户端与服务器间交换数据而非整个页面文档,实现页面的局部更新. 3.jQuery是一个框架,它对JS进行了封装 ...

  2. Nginx介绍 分类: Nginx 服务器搭建 2015-07-13 10:50 19人阅读 评论(0) 收藏

    海量请求,高性能服务器. 对比Apache, Apache:稳定,开源,跨平台,重量级,不支持高度并发的web服务器. 由此,出现了Lighttpd与Nignx:轻量级,高性能. 发音:engine ...

  3. 改变HTML中超链接的显示样式 分类: C1_HTML/JS/JQUERY 2014-08-27 10:11 595人阅读 评论(0) 收藏

    更详细的内容请参考:http://www.w3school.com.cn/tags/tag_a.asp HTML中的代码如下: <a class="news_title" t ...

  4. 全面解析sizeof(下) 分类: C/C++ StudyNotes 2015-06-15 10:45 263人阅读 评论(0) 收藏

    以下代码使用平台是Windows7 64bits+VS2012. sizeof作用于基本数据类型,在特定的平台和特定的编译中,结果是确定的,如果使用sizeof计算构造类型:结构体.联合体和类的大小时 ...

  5. 全面解析sizeof(上) 分类: C/C++ StudyNotes 2015-06-15 10:18 188人阅读 评论(0) 收藏

    以下代码使用平台是Windows7 64bits+VS2012. sizeof是C/C++中的一个操作符(operator),其作用就是返回一个对象或者类型所占的内存字节数,使用频繁,有必须对齐有个全 ...

  6. jQuery中的on()和click()的区别 分类: 前端 HTML jQuery 2014-11-06 10:26 96人阅读 评论(0) 收藏

    HTML页面代码 <div> <h1>Click</h1> <button class="add">Click me to add ...

  7. javascript中定义事件的三种方式 分类: C1_HTML/JS/JQUERY 2014-08-07 10:27 634人阅读 评论(0) 收藏

    在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使 ...

  8. MS SQL 合并结果集并求和 分类: SQL Server 数据库 2015-02-13 10:59 92人阅读 评论(0) 收藏

    业务情景:有这样一张表:其中Id列为表主键,Name为用户名,State为记录的状态值,Note为状态的说明,方便阅读. 需求描述:需要查询出这样的结果:某个人某种状态的记录数,如:张三,待审核记录数 ...

  9. 菜鸟学习-C语言函数参数传递详解-结构体与数组 分类: C/C++ Nginx 2015-07-14 10:24 89人阅读 评论(0) 收藏

    C语言中结构体作为函数参数,有两种方式:传值和传址. 1.传值时结构体参数会被拷贝一份,在函数体内修改结构体参数成员的值实际上是修改调用参数的一个临时拷贝的成员的值,这不会影响到调用参数.在这种情况下 ...

随机推荐

  1. 基于Selenium的模拟浏览器采集

    Selenium 也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7.8.9).Mozilla Firefox.Mozil ...

  2. Android 手势水平监听判断

    package com.zihao.ui; import com.zihao.R; import android.os.Bundle; import android.app.Activity; imp ...

  3. centos 6.5 apache配置web应用&防火墙设置(入门级)

    硬件:centos 6.5 服务器 , Dell R420 , 两个网口,一个给公网,一个给内网. 软件:apache 2.2 配置了virtualhost以后,用curl在本地可以访问.但是其他机器 ...

  4. Idea反向生成JavaBean

    创建数据库

  5. CDN——到底用还是不用?

    最近在学bootstrap,在知乎上搜索bootstrap看到有人问bootstrap基础包体积较大,对性能影响会不会很大,看到两种方法来减少对性能的影响: 有选择地部分加载,bootstrap带有L ...

  6. sharepoint定义固定的网站集

    SPSite site = new SPSite(http://192.168.0.3/);            SPWeb web = site.RootWeb;

  7. CentOS7下安装soaplib

    测试安装 cd ENV . bin/activate yum install libxml2-devel libxslt-devel pip install soaplib 安装中遇到的问题: Uni ...

  8. uml 推荐文章

    http://blog.csdn.net/zfrong/article/details/4086424 http://www.cnblogs.com/ywqu/archive/2009/12/14/1 ...

  9. XE 的程序升级 XE5 问题处理记录

    XE 的程序升级 XE5 问题处理记录 1.  [dcc32 Fatal Error] frxClass.pas(3556): F1026 File not found: 'xxxxx\Registr ...

  10. 关于CentOS普通用户无法登录SSH问题

    在CentOS中,假若一切都顺利的话,你建新一个用户,它就自动添加到SSHD登录服务中的处的了,不必手动或再设置什么,但有些情况下,我们的系统只允许root用户登录,那么,我们就要进行一些必要的设置, ...