前端:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>首页</title>
<script type="text/javascript" src="JQuery/jquery.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="txtlogin" value="车辆管理员1" />
<input type="button" onclick="Login()" value="登录" />
</div>
</form>
<script type="text/javascript">
function Login() {
//var userid = $("#txtlogin").val();
$.ajax({
type: "post",
url: "CarManager/ashx/User.ashx",
data: { "action": "userlogin", "username": $("#txtlogin").val() },
dataType: "json",
success: function (data) {
if (data.msg="1") {
location.href = "CarManager/Main.aspx";
}
}
});
}
</script>
</body>
</html>

后端:

public class User : IHttpHandler, IRequiresSessionState
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain"; StringBuilder _strContent = new StringBuilder();
if (_strContent.Length == 0)
{
string _strAction = context.Request.Params["action"];
if (string.IsNullOrEmpty(_strAction))
{
_strContent.Append("{\"msg\": \"0\", \"msgbox\": \"禁止访问!\",\"rows\": []}");
}
else
{
switch (_strAction.Trim().ToLower())
{
case "userlogin": _strContent.Append(UserLogin(context)); break;
default: break;
}
}
}
context.Response.Write(_strContent.ToString());
} private string UserLogin(HttpContext context)
{
string result = "";
string _username = context.Request.Form["username"];
string _password = context.Request.Form["password"];
Model.cmUser model = new Model.cmUser();
if (context.Session["UserModel"] != null)
{//当前浏览器已经有用户登录 判断是不是当前输入的用户
model = (Model.cmUser)context.Session["UserModel"];
if (model.Name != _username)
{
result = "{\"msg\": \"0\", \"msgbox\": \"此浏览器已经有其他用户登录!\"}";
}
else
{
result = "{\"msg\": \"1\", \"msgbox\": \"登录成功!\"}";
}
}
else
{
BLL.cmUser bll = new BLL.cmUser();
string strWhere = string.Format("[Name]='{0}'", _username);// and [Password]='{1}', _password
DataTable dt = bll.GetList(1, strWhere, " ID ").Tables[0];
if (dt != null)
{//用户和密码正确
int _userid = 0;
int.TryParse(dt.Rows[0]["ID"].ToString(), out _userid);
model.ID = _userid;
model.Name = dt.Rows[0]["Name"].ToString();
int _type = 0;
int.TryParse(dt.Rows[0]["Type"].ToString(), out _type);
model.Type = _type; context.Session["UserModel"] = model;
result = "{\"msg\": \"1\", \"msgbox\": \"登录成功!\"}";
}
else
{
result= "{\"msg\": \"0\", \"msgbox\": \"用户名或密码错误!\"}"; ;
}
}
return result;
} public bool IsReusable
{
get
{
return false;
}
}
}

ajax配合一般处理程序(.ashx)登录的一般写法的更多相关文章

  1. 用JQuery Ajax 与一般处理程序 请求数据无刷新,以及如何调试错误

    通过 ajax() 与 一般处理程序,请求数据库数据,实现界面无刷新. Jquery ajax 请求参数详细说明 http://www.w3school.com.cn/jquery/ajax_ajax ...

  2. Jquery EasyUI +Ajax +Json +一般处理程序 实现数据的前台与后台的交互 --- 善良公社项目

    经过上一篇博客,本节主要是来看实现的功能是后台的数据通过json数据传过来,前台修改的数据再传回数据库之后页面再次更新table中的数据: 图示: 实例:前台的代码 <%--表格显示区--%&g ...

  3. ASP.NET -- 一般处理程序ashx

    ASP.NET  --   一般处理程序ashx 如果在一个html页面向服务器端请求数据,可用ashx作为后台页面处理数据.ashx适合用作数据后台处理,相当于WebForm中的aspx.cs文件或 ...

  4. jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

    1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是“a ...

  5. .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转

    .net mvc 站点自带简易SSL加密传输   因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...

  6. jQuery获取一般处理程序(ashx)的JSON数据

    昨天有在开发的软件生产线生产流程,RFID扫描IC卡的数据,当中有用到jQuery获取一般处理程序(ashx)的JSON数据.今有把它写成一个小例子,望需要的网友能参考. 在网站中,创建一个一般应用程 ...

  7. casperjs配合phantomjs实现自动登录百度,模拟点击等等操作 - 怕虎在线www.ipahoo.com图文教程 - 怕虎在线

    微信支付取消2万元保证金门槛,这是全民电商来袭!-观点-虎嗅网 微信支付取消2万元保证金门槛,这是全民电商来袭! casperjs配合phantomjs实现自动登录百度,模拟点击等等操作 - 怕虎在线 ...

  8. ssh-keygen配合ssh_config免密码登录VPS

    ssh-keygen配合ssh_config免密码登录VPS Posted by fiture / 2012年12月29日 / 「Ubuntu」「分享」 用过终端登录远程服务器或者VPS的童鞋都用过类 ...

  9. ajax配合art-template模板引擎的使用

    最近才接触js的模板引擎听说相比以前使用的js foreach加载后台返回的json数据简便很多而且效率方面也很不错.今天自己玩了一下 后台使用的是.net mvc,数据库脚本就不提供了,返回的Jso ...

随机推荐

  1. Microsoft Avro介绍

    Microsoft发布了他们自己对Apache Avro通信协议的实现.Avro被描述为"紧凑的二进制数据序列化格式,类似于Thrift或者Protocol Buffers",同时 ...

  2. MySQL 权限

    create user创建用户 CREATE USER li@localhost IDENTIFIED BY 'li'; 授予用户li数据库person的所有权限,并允许用户li将数据库person的 ...

  3. logistic回归

    logistic回归 回归就是对已知公式的未知参数进行估计.比如已知公式是$y = a*x + b$,未知参数是a和b,利用多真实的(x,y)训练数据对a和b的取值去自动估计.估计的方法是在给定训练样 ...

  4. Linux下MongoDB服务安装

    Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...

  5. struts tags

    HTTP ERROR 500 Problem accessing /showognl.jsp. Reason: Server Error Caused by: org.apache.jasper.Ja ...

  6. 前段播放 流媒体(RTMP,RTSP,HLS)

    前言 最近项目需要流媒体的播放,后端一共提供了 三种流数据(RTSP,RTMP,HLS),在不同的场景可能会使用到不同方式播放,就需要做到适配, 支持所有的流数据播放.花了一段时间研究,在这里和大家分 ...

  7. Js replace() 学习笔记

    最近捣鼓着学习Js,发现replace()真的很有用,替换功能杠杠的棒. 接下来看看我遇到的问题: 有两个随机给出的字符串,字符串1'xxxxxx',字符串2'====T'(这两个用作示例,其他为随机 ...

  8. 浅谈HTML5单页面架构(一)——requirejs + angular + angular-route

    心血来潮,打算结合实际开发的经验,浅谈一下HTML5单页面App或网页的架构. 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又要数单页面架构体验 ...

  9. 每天多一点(2016.12.04)》Javascript隐式转换

    乱想 javascript为什么需要隐式转换?如果没有会出现什么情况? 找了一圈没有看到关于这个的讨论,只好自己研究了,可能不一定正确,自行辨知. 郁闷就是郁闷在好好的,为什么要搞个隐式转换,一般来讲 ...

  10. Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)

    上一节我们讨论了 attach volume 操作中 cinder-api 的工作,本节讨论 cinder-volume 和 nova-compute 如何将 volume attach 到 Inst ...