Asp.net 登陆页面的Ajax异步身份验证的实现
2011-09-01 15:48
573 查看
先把js脚本写出来:
然后是服务器端的C#验证:Login.ashx
讨论:
Ok,看到这里,想必就明白了吧。
<script type="text/javascript"> function ValidForm() { if (!$('#commentForm').valid()) return false; else return true; } function PostData() { if (ValidForm()) { var uName = $('#username').val(); var pwd = $('#password').val(); $.ajax( { url: 'Services/Login.ashx', data: { username: uName, password: pwd }, type: 'post', dataType: 'json', success: function (data) { if (data.Code == 200) { window.location = 'Default.aspx'; } else { $('#spError').show(); $('#spError').text(data.Message); } }, error: function (xhr, e, textStatus) { var isAjaxRedirect = xhr.status == 200 && xhr.responseText.match(/!expire/); if (isAjaxRedirect == '!expire') { $('#spError').text('提交错误,页面超时请重试!'); } else $('#spError').text('提交错误,请重试!'); } }); } } </script>
<div class="lg_form"> <div class="lg_con"> <div class="lg_land_name"> 请登录 <span class="field-validation-error" style="display:none;" id="spError"></span></div> <form class="cmxform" id="commentForm" method="post" action=""> <div class="lg_form_cn"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr valign="top"> <td width="20%" align="right"> <span class="email_pad">用户名</span> </td> <td width="74%"> <input class="ttext ipt1 {required:true,messages:{required:'请输入用户名'}}" id="username" name="username" type="text" value="" /> </td> <td width="6%"> </td> </tr> <tr valign="top"> <td align="right"> <span class="email_pwl">密</span><span class="email_pwr">码</span> </td> <td> <input class="ttext ipt1 {required:true,messages:{required:'请输入密码'}}" id="password" name="password" type="password" value="" /> </td> <td> </td> </tr> </table> </div> <input name="repc" type="hidden" value="false" /> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="30%"> </td> <td width="25%" height="80"> <input type="button" class="free_btn3" value="登 录" onclick="PostData()"/> </td> <td width="45%"> </td> </tr> </table> </form> </div> </div>
然后是服务器端的C#验证:Login.ashx
/// <summary> /// Login 的摘要说明 /// </summary> public class Login : IHttpHandler { public void ProcessRequest(HttpContext context) { ResponseResult result; string name = context.Request["username"]; string password = MD5.getMd5(context.Request["password"]); UserLogic logic = new UserLogic(); bool right = logic.Login(name, password); if (right == true) { result = new ResponseResult { Code = 200, Message = "验证成功!" }; } else { result = new ResponseResult { Code = 400, Message = "用户名或者密码错误!" }; } context.Response.Write(JsonConvert.SerializeObject(result)); } public bool IsReusable { get { return false; } } }
讨论:
<input type="button" class="free_btn3" value="登 录" onclick="PostData()"/>type="submit" 和 type="button"的区别是什么?
Ok,看到这里,想必就明白了吧。
相关文章推荐
- ASP.NET之使用Ajax实现页面异步刷新(无需刷新整个页面)
- 使用ASP.Net Forms模式实现WebService身份验证 (转)
- ASP.NET+Ajax+Javascript实现页面定次刷新滚动内容
- ASP.NET MVC使用Oauth2.0实现身份验证
- Asp.net2005不用Ajax实现无刷新验证用户名、密码和中文验证码
- javascript 异步页面查询实现代码(asp.net)
- ASP.NET中实现jQuery Validation-Engine的Ajax验证实现代码
- ASP.NET Ajax实现弹出提示框,页面变灰不可点击
- 在Asp.net MVC使用thickbox实现调用页面的Ajax更新
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(3):保持用户上下文
- [导入]Ajax即时实现服务端数据验证(Asp.net 2.0)(示例代码下载)
- ajax异步核心内容示例:实现页面中异步验证账号是否已存在
- asp.net+ajaxfileupload.js 实现文件异步上传代码分享
- Asp.Net继承实现身份验证
- ASP.NET Forms验证 实现子域名(SubDomain)共享登陆下的缺陷
- asp.net + html页面来实现 ajax 示意——给初学者的参考
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(9):服务器端和客户端数据类型的自动转换:DataTable和DataSet
- [导入]如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- ASP.NET如何实现服务器端身份验证和客户端状态管理?(Session机制和Cookie)
- 使用ASP.Net Forms模式实现WebService身份验证