Login.html

<head>
<title>登录</title>
<mce:script src="js/jquery-1.5.2.js" mce_src="js/jquery-1.5.2.js" type="text/javascript"></mce:script>
<mce:script src="js/login.js" mce_src="js/login.js" type="text/javascript"></mce:script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="background">
<div id="loginBox">
<span id="title">登录</span>
<div id="LoginMessage">
用户名:
<input id="txtUser" type="text" maxlength="25" class="txtbox" />
<br />
密 码:
<input id="txtPassword" type="password" maxlength="25" class="txtbox" />
<br />
<center>
<div id="loading">
<img src="data:images/loading.gif" mce_src="data:images/loading.gif" alt="login"/></div>
<input id="btnLogin" type="image" src="data:images/login.gif" mce_src="data:images/login.gif"/>
</center>
</div>
</div>
</div>
</div>
</form>
</body>

  

Login.js:

/*----------------------------------------------------------------
// File Name:login.js
// File Introduce
// check and handler user input
//
// Create Mark
// Create Date: 4/20/2011 11:15:19 PM
// Create by Ben.Jiang
//----------------------------------------------------------------*/ var email_str = /^(?:[a-z/d]+[_/-/+/.]?)*[a-z/d]+@(?:([a-z/d]+/-?)*[a-z/d]+/.)+([a-z]{2,})+$/i; //Email regular expression $(document).ready(function() {
$("#btnLogin").click(function() {
var username = $("#txtUser").val();
var password = $("#txtPassword").val();
if (username == "" || password == "") {//check if the input is legal
alert("用户名和密码不可以为空!");
return false;
}
else if (!email_str.test(username)) {//check if email is legal
alert("邮件地址格式不正确!");
return false;
} else {
$.ajax({
type: "POST",
url: "/Ajax/LoginHandler.ashx", //event handler url
data: "username=" + escape($('#txtUser').val()) + "&password=" + escape($('#txtPassword').val()),//发送ajax请求
beforeSend: function() {
$("#loading").css("display", "block"); //show loading
$("#btnLogin").css("display", "none"); //hide login button
},
success: function(msg) {
$("#loading").hide(); //hide loading
if (msg == "unregistered") {
alert("对不起,该用户未注册!");//user is unregistered
}
if (msg == "frozen") {
alert("对不起,该用户已被冻结!");//user id frozen
}
if (msg == "fail") {
alert("对不起,用户名或密码错误!"); //login failed
}
if (msg == "success") {
parent.document.location.href = "manage.aspx"; //login successfully
}
},
complete: function(data) {
$("#loading").css("display", "none"); //hide loading
$("#btnLogin").css("display", "block"); //show login
}
});
}
return false; //stop client continue submit
}
);
});

  

LoginHandler.ashx:

/*----------------------------------------------------------------
// File Name:LoginHandler.ashx.cs
// File Introduce
// handler user login
//
// Create Mark
// Create Date: 4/20/2011 12:15:19 PM
// Create by Ben.Jiang
//----------------------------------------------------------------*/ using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Web.SessionState;
using PLA.BLL;
using PLA.Model;
using Web.App_Code; namespace Web.Ajax
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class LoginHandler : IHttpHandler,IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string username = context.Request["username"];
string password = context.Request["password"]; UserBLL userBLL = new UserBLL();
//check if the user is registered
if (!userBLL.GetUserRegister(username))
{
context.Response.Write("unregistered");
}//check if the user is frozen
else if (!userBLL.CheckUserBanStatusByEmail(username))
{
context.Response.Write("frozen");
}
else
{
LoginBLL loginBLL = new LoginBLL();
//check if the username and password is right
bool flag = loginBLL.ValidateLogin(username, MD5Helper.getMd5Hash(password), null);
if (flag)
{
UserInfo user = userBLL.GetUserInfoByEmail(username);
context.Session["UID"] = user.U_ID;
context.Session["Email"] = user.U_Email;
context.Response.Write("success");
}
else
{
context.Response.Write("fail");
}
}
} public bool IsReusable
{
get
{
return false;
}
}
}
}

  

Ajax - 登录的更多相关文章

  1. ajax登录验证-js

    1.html代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  2. python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)

    一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...

  3. Ajax登录用户名密码

    <script src="http://code.jquery.com/jquery-latest.js"></script>#引入jQuery#当点击函数 ...

  4. Django Ajax登录 防止CSRF

    什么是CSRF 维基百科: 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CS ...

  5. Django 博客项目01 数据库设计与验证码校验+Ajax登录

    数据库设计 from django.db import models from django.contrib.auth.models import AbstractUser class UserInf ...

  6. 知问前端——Ajax登录

    本文,将使用Ajax登录. 一.服务器端代码 is_user.php: <?php require 'config.php'; $query = mysql_query("SELECT ...

  7. 巨蟒python全栈开发django10:ajax&&登录认证

    通过题目进行知识点回顾: 聚合查询 From django.db.models import Avg,Min,Max,F,Q,Count,Sum #查询书籍的平均值 Ret= Models.Book. ...

  8. 转:ajax的AntiForgery和Authorize 以及ajax登录例子

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/ashcn2001/article/det ...

  9. 项目:jSon和Ajax登录功能

    组件化网页开发 / 步骤二 · 项目:jSon和Ajax登录功能 要熟练编写封装的$.ajax({........})

  10. 解决shiro自定义filter后,ajax登录无法登录,并且无法显示静态资源的问题

    这个问题困扰了我一天,看了下面两个文章,豁然开朗: https://www.cnblogs.com/gj1990/p/8057348.html https://412887952-qq-com.ite ...

随机推荐

  1. PHP 重载 __call() _callStatic方法

    在C++和java中,可以函数参数的个数或类型来进行重载.但php是弱类型的语言,无法采用传统的方法.若下面这样: class Person{ function fun1($a) { echo 'fu ...

  2. scrapy入门

    安装完scrapy后,创建一个新的工程: scrapy startproject tutorial 会创建一个tutorial文件夹有以下的文件: tutorial/ scrapy.cfg tutor ...

  3. 《HTML 5网页开发实例具体解释》文件夹

    第一篇  从宏观上认识HTML 5 讲述了HTML 5引发的Web革命.HTML 5的总体特性.HTML 5相关概念和框架和开发环境搭建. 第1章 HTML 5引发的Web革命 1.1  你是不是真的 ...

  4. wxWidgets刚開始学习的人导引(4)——wxWidgets学习资料及利用方法指导

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  5. Android基础【1】杀死进程(强行停止)应用程序的方法

    写在前面: 进入手机ODM已经很久,经历过几个项目项目下来,对高通.展讯.Marvell平台都进行了接触,对于我个人来说,参与手机系统项目的开发与维护,最明显的好处是可以深入的了解某一功能的具体实现过 ...

  6. 文件操作中的FLAG(O_RDONLY,O_WRONLY )的值

    #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> void main(void) { ...

  7. BZOJ 2427: [HAOI2010]软件安装( dp )

    软件构成了一些树和一些环, 对于环我们要不不选, 要么选整个环. 跑tarjan缩点后, 新建个root, 往每个入度为0的点(强连通分量) 连边, 然后跑树dp( 01背包 ) ---------- ...

  8. 基于visual Studio2013解决C语言竞赛题之1008整除数

         题目 解决代码及点评 /************************************************************************/ ...

  9. Tinyfool的2013年总结————在困惑和挣扎中试图前行

    Tinyfool的2013年总结----在困惑和挣扎中试图前行 | Tinyfool的Blog Tinyfool的2013年总结----在困惑和挣扎中试图前行

  10. winform利用代码将控件置于顶端底端

    有时,我们可能动态的添加控件,并准备将其置于对顶层或最底层.实现的方法有两个: 一种方法是在WinForm窗体中使用Controls控件集的SetChildIndex方法,该方法将子控件设定为指定的索 ...