前端:

<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. 使用LinqToExcel读取Excel

    我们读取和写入Excel 经常使用NPOI工具,如果我们的需求只是需要读取Excel,可以考虑使用LinqToExcel这个组件.这个组件用起来简单,实用,操作方便,而且结合了Linq的查询特性,ex ...

  2. Expert 诊断优化系列-------------针对重点语句调索引

    上一篇我们说了索引的重要性,一个索引不仅能让一条语句起飞,也能大量减少系统对CPU.内存.磁盘的依赖.我想上一篇中的例子可以说明了.给出上一篇和目录文链接: SQL SERVER全面优化------- ...

  3. 探索C#之虚拟桶分片

    阅读目录 背景 虚拟桶(virtual buckets) 实现 总结 背景 关于数据分片讨论最多的是一致性hash,然而它并不是分布式设计中的银弹百试百灵. 在数据稳定性要求比较高的场景下它的缺点是不 ...

  4. DDD领域驱动设计之领域服务

    1.DDD领域驱动设计实践篇之如何提取模型 2.DDD领域驱动设计之聚合.实体.值对象 3.DDD领域驱动设计之领域基础设施层 什么是领域服务,DDD书中是说,有些类或者方法,放实体A也不好,放实体B ...

  5. C# 6.0 功能预览 (二)

    在Language Feature Status上面看到,其实更新的并不是特别多,为了不会误导看了C# 6.0 功能预览 (一)的园友,现在把官方的更新列表拿了过来,供大家参考 Roslyn 编译平台 ...

  6. ASP.NET MVC 从零开始 - create and run

    这篇文章是从我的 github 博客 http://lxconan.github.io 导入的. 如果你想用 ASP.NET MVC 创建一个网络应用,那么你可以搜到很多的文章.但是没有多少文章告诉你 ...

  7. MySQL外键之级联

    简介 MySQL外键起到约束作用,在数据库层面保证数据的完整性.例如使用外键的CASCADE类型,当子表(例如user_info)关联父表(例如user)时,父表更新或删除时,子表会更新或删除记录,这 ...

  8. 关于ie11 的开发者工具

    win7旗舰系统64为,更新ie11: 新安装了ie11浏览器,安装以后发现原来可以正常使用的开发者工具不能使用,提示 Imposible use F12 Developer Tools (Excep ...

  9. ClickOnce部署(1):一些发布方式

    ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋友可以直接查找MSDN ...

  10. mpi4py实践

    版权声明:本文为博主原创文章,未经博主允许不得转载. 1.概述 MPI(Message Passing Interface),消息传递接口,是一个标准化和轻便的能够运行在各种各样并行计算机上的消息传递 ...