jQuery Ajax异步交互登录界面
摘要:登录界面提供给用户维护信息的接口,登录界面重点在Ajax,这里使用的是ASP.NET与jQuery,输入用户名和密码后,使用Ajax方式将信息提交到服务器端,服务器端判断时候存在该用户,存在则登录成功并转向管理界面,有时需要cookie或Session,
登录界面提供给用户维护信息的接口,登录界面重点在Ajax,这里使用的是ASP.NET与jQuery,输入用户名和密码后,使用Ajax方式将信息提交到服务器端,服务器端判断时候存在该用户,存在则登录成功并转向管理界面,有时需要cookie或Session,此处不作讨论,不存在则提示登录失败。
出于安全需要,在使用ajax将密码传到服务器端前,我们可以使用MD5对密码进行加密,当然数据库中存储的也是加密后的字符串。jQuery有一款这样的MD5加密插件。
主要代码
Default.aspx提供超链接,点击会调用thickbox,打开弹出页面。
以下为引用内容:
<divstyle="margin-left:50px;margin-top:50px;">
欢迎使用后台,<ahref="Login.htm?TB_iframe&height=180&width=350&modal=true"class="thickbox"id="myToolTip"title="点击登录,进入后台管理">点击登录!</a>
继续浏览前台,<ahref="../Default.aspx">返回前台</a>
login.htm登录界面,负责登录逻辑。
以下为引用内容:
<scripttype="text/javascript"src="js/jquery-1.3.2.js"></script>
<scripttype="text/javascript">
$().ready(function(){
$('#Login').click(function(){
if($('#username').val()==""||$('#password').val()==""){
alert("用户名或密码不能为空!");
}
else{
$.ajax({
type:"POST",
url:"Ajax/LoginHandler.ashx",
data:"username="+escape($('#username').val())+"&password="+escape($('#password').val()),
beforeSend:function(){
$("#loading").css("display","block");//点击登录后显示loading,隐藏输入框
$("#login").css("display","none");
},
success:function(msg){
$("#loading").hide();//隐藏loading
if(msg=="success"){
//parent.tb_remove();
parent.document.location.href="admin.htm";//如果登录成功则跳到管理界面
parent.tb_remove();
}
if(msg=="fail"){
alert("登录失败!");
}
},
complete:function(data){
$("#loading").css("display","none");//点击登录后显示loading,隐藏输入框
$("#login").css("display","block");
},
error:function(XMLHttpRequest,textStatus,thrownError){
}
});
}
});
});
</script>
<divid="loading"style="text-align:center;display:none;padding-top:10%">
<imgsrc="images/loading.gif"alt="loading"/>
</div>
<divid="login"style="text-align:center">
<divstyle="position:absolute;right:0;top:0"><imgsrc="images/closebox.png"onclick="parent.tb_remove()"alt="点击关闭"style="cursor:pointer"/></div>
<tableborder="0"cellpadding="3"cellspacing="3"style="margin:0auto;">
<tr>
<tdstyle="text-align:right;padding:10px">
<label>用户名:</label>
</td>
<td>
<inputid="username"type="text"size="20"/>
</td>
</tr>
<tr>
<tdstyle="text-align:right;padding:10px">
<label>密码:</label>
</td>
<td>
<inputid="password"type="password"size="20"/>
</td>
</tr>
<tralign="right">
<tdcolspan="2">
<inputtype="submit"id="Login"value=" 登 录 "style="margin-right:50px">
<inputtype="submit"id="LoginCancel"value=" 取 消 "onclick="parent.tb_remove()">
</td>
</tr>
</table>
</div>
LoginHandler.ashxajax处理类,处理简单逻辑。
以下为引用内容:
//此处连接数据库查看是否有此用户,此处为了方便起见,直接判断
if(username=="admin"&&password=="1"){
context.Response.Write("success");
//存储session
}else{
context.Response.Write("fail");
}
jQuery加密MD5插件,引用md5.js后使用$.md5()函数对字符串进行加密。
login.htm
以下为引用内容:
data:"username="+escape($('#username').val())+"&password="+$.md5(escape($('#password').val())),
success:function(msg){
$("#loading").hide();//隐藏loading
alert(msg);
if(msg=="success"){
//parent.tb_remove();
parent.document.location.href="admin.htm";//如果登录成功则跳到管理界面
parent.tb_remove();
}
if(msg=="fail"){
alert("登录失败!");
}
}
LoginHandler.ashx中加密码返回。
以下为引用内容:
context.Response.Write(password);
再次运行程序弹出输入密码的MD5加密后的字符串。
相关推荐
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo