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. 设计模式(四)原型模式Prototype(创建型)

      设计模式(四)原型模式Prototype(创建型) 1.   概述 我们都知道,创建型模式一般是用来创建一个新的对象,然后我们使用这个对象完成一些对象的操作,我们通过原型模式可以快速的创建一个对象 ...

  2. hdu1397(素数组和成偶数的个数 用 标记法)

    Problem Description Goldbach's Conjecture: For any even number n greater than or equal to 4, there e ...

  3. 用tomcat搭建web服务器

    链接地址:http://www.blogjava.net/qingshow/archive/2010/01/17/309846.html qingshow “不积跬步无以至千里,不积小流无以成江海”. ...

  4. BZOJ 3631: [JLOI2014]松鼠的新家( 树链剖分 )

    裸树链剖分... ------------------------------------------------------------------- #include<bits/stdc++ ...

  5. BZOJ 3315: [Usaco2013 Nov]Pogo-Cow( dp )

    我真想吐槽USACO的数据弱..= = O(n^3)都能A....上面一个是O(n²), 一个是O(n^3) O(n^3)做法, 先排序, dp(i, j) = max{ dp(j, p) } + w ...

  6. [转]PostgreSQL事务处理机制

    原文链接:http://blog.chinaunix.net/uid-20726500-id-4040024.html 事务的实现原理可以解读为DBMS采取何种技术确保事务的ACID特性.Postgr ...

  7. ZOJ 3609 求逆元

    Modular Inverse Time Limit: 2 Seconds      Memory Limit: 65536 KB The modular modular multiplicative ...

  8. Starting the application on Mac does not work(拷贝platforms到不同的位置,才能解决问题),还可设置DYLD_PRINT_LIBRARIES=1 观察动态库

    In some rare cases it can happen that the application does not launch and there is no reaction after ...

  9. linux下的软件包安装

    linux下安装软件包有两种方法:源文件编译安装(source)和 rpm 安装. 1.源文件包安装的通用方法. 一般安装源代码的程序你得要看它的README,一般在它的目录下都有的. 01.配置: ...

  10. 怎样实现cocos2d-x之文字渲染

    // 1.创建一段文本 // create函数的三个参数分别为:文本内容.字体和字体大小 CCLabelTTF *font=CCLabelTTF::create("Hello World&q ...