ホームページ  >  記事  >  バックエンド開発  >  asp.net jQuery Ajaxユーザーログイン機能の実装

asp.net jQuery Ajaxユーザーログイン機能の実装

高洛峰
高洛峰オリジナル
2017-01-12 13:58:051616ブラウズ

メイン ページ呼び出しコード スニペット:

<asp:HyperLink ID="lnkLogin" runat="server" NavigateUrl="#" >登录</asp:HyperLink> 
<script language="javascript" type="text/javascript"> 
$(&#39;#<%=this.lnkLogin.ClientID %>&#39;).click( 
function(){ 
jBox.open(&#39;iframe-jBoxID&#39;,&#39;iframe&#39;,&#39;Login.aspx&#39;,&#39;用户登录 
&#39;,&#39;width=400,height=250,center=true,draggable=true,model=true&#39;); 
} ); 
</script>

Login.aspx コード:

<form id="form1" onsubmit="return false;"> 
<table id="login-table"> 
<tr> 
<td width="60">学号:</td> 
<td><input class="textbox" type="text" style="width:160px;" id="txtUserName" 
maxlength="9" onblur="checkUserName()" onclick="$.trim(this.value)"/><span></span> 
</td> 
</tr> 
<tr> 
<td width="60">密码:</td> 
<td><input class="textbox" type="password" style="width:160px;" id="txtUserPwd" 
onblur="checkUserPwd()" onclick="$.trim(this.value)" /><span></span> 
</td> 
</tr> 
<tr> 
<td width="60">验证码:</td> 
<td><input class="textbox" type="text" style="width:160px;" maxlength="5" 
id="txtCheckCode" onblur="checkCheckCode()" onclick="$.trim(this.value)"/><span> 
</span> 
</td> 
</tr> 
<tr> 
<td width="60"></td> 
<td><div style="color:#808080;">输入下图中的字符,不区分大小写</div><br /> 
<img src="CheckCode.aspx" style="vertical-align:middle;" alt="验证码" id="imgCheckCode" /> 
<a href="#" id="change_image">看不清,换一张</a></td> 
</tr> 
<tr> 
<td width="60"></td> 
<td><input type="image" src="App_Themes/Images/btn_login.jpg" id="btnLogin" 
alt="马上登录" style="border:0;"/></td> 
</tr> 
</table> 
</form>

jQuery コード:

<script language="javascript" type="text/javascript" > 
$(document).ready(function(){ 
// 验证码更新 
$(&#39;#change_image&#39;).click( 
function(){ 
$(&#39;#imgCheckCode&#39;).attr(&#39;src&#39;,&#39;CheckCode.aspx?&#39;+Math.random()); 
}); 
//关键的代码 
$("#btnLogin").click(function(){ 
if(checkUserName() && checkUserPwd() && checkCheckCode()) 
{ 
var data = { 
UserName: $(&#39;#txtUserName&#39;).val(), 
UserPwd: $(&#39;#txtUserPwd&#39;).val(), 
CheckCode: $(&#39;#txtCheckCode&#39;).val() 
}; 
//提交数据给Login.ashx页面处理 
$.post("Ajax/Login.ashx",data,function(result){ 
if(result == "1") //登录成功 
{ 
alert("登录成功!您可以进行其他操作了!"); 
// 关闭模拟窗口 
window.parent.window.jBox.close(); 
} 
else if(result == "2") //验证码错误 
{ 
$(&#39;#txtCheckCode&#39;).next("span").css("color","red").text("* 
验证码错误"); 
} 
else 
{ 
alert("登录失败!请重试"); 
} 
}); 
} 
else 
{ 
checkUserName(); 
checkUserPwd(); 
checkCheckCode(); 
} 
}); 
}); 
//check the userName 
function checkUserName() 
{ 
if($("#txtUserName").val().length == 0) 
{ 
$("#txtUserName").next("span").css("color","red").text("*用户名不为空"); 
return false; 
} 
else 
{ 
var reg = /^\d{9}$/; 
if(!reg.test($(&#39;#txtUserName&#39;).val())) 
{ 
$(&#39;#txtUserName&#39;).next("span").css("color","red").text("*正确的格式 
如:030602888"); 
return false; 
} 
else 
{ 
$("#txtUserName").next("span").css("color","red").text(""); 
return true; 
} 
} 
} 
//check the pwd 
function checkUserPwd() 
{ 
if($(&#39;#txtUserPwd&#39;).val().length == 0) 
{ 
$(&#39;#txtUserPwd&#39;).next("span").css("color","red").text("*密码不为空"); 
return false; 
} 
else 
{ 
$(&#39;#txtUserPwd&#39;).next("span").css("color","red").text(""); 
return true; 
} 
} 
// check the check code 
function checkCheckCode() 
{ 
if($(&#39;#txtCheckCode&#39;).val().length == 0) 
{ 
$(&#39;#txtCheckCode&#39;).next("span").css("color","red").text("*验证码不为空"); 
return false; 
} 
else 
{ 
$(&#39;#txtCheckCode&#39;).next("span").css("color","red").text(""); 
return true; 
} 
} 
</script>

Login.ashx コード:

using System; 
using System.Collections; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 
using System.Xml.Linq; 
using System.Data.SqlClient; 
using System.Web.SessionState; //支持session必须的引用 
namespace Website.Ajax 
{ 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
public class Login : IHttpHandler,IRequiresSessionState 
{ 
public void ProcessRequest(HttpContext context) 
{ 
context.Response.ContentType = "text/plain"; 
string checkCode = ""; 
if (context.Session["checkCode"] != null) 
{ 
checkCode = Convert.ToString(context.Session["checkCode"]).ToLower(); 
} 
if (context.Request.Form["CheckCode"].ToLower() == checkCode) 
{ 
using (SqlConnection conn = new SqlConnection(SqlHelper.StudentConnectionString)) 
{ 
string sql = "select ID,stuNumber,userPassword,realName from t_stuUser 
where stuNumber=@UserName and userPassword=@UserPwd"; 
SqlCommand cmd = new SqlCommand(sql, conn); 
SqlParameter pUserName = cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 30); 
SqlParameter pUserPwd = cmd.Parameters.Add("@UserPwd", SqlDbType.VarChar, 150); 
pUserName.Value = context.Request.Form["UserName"]; 
pUserPwd.Value = Common.MD5(context.Request.Form["UserPwd"]); 
conn.Open(); 
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 
if (sdr.Read()) 
{ 
context.Session["UserID"] = Convert.ToString(sdr["ID"]); 
context.Session["StuName"] = Convert.ToString(sdr["realName"]); 
context.Session["StuNumber"] = Convert.ToString(sdr["stuNumber"]); 
context.Response.Write("1"); // 登录成功 
} 
else 
{ 
context.Response.Write("0"); //登录失败,用户名或密码错误 
} 
} 
} 
else 
{ 
context.Response.Write("2"); // 验证码错误 
} 
} 
public bool IsReusable 
{ 
get 
{ 
return false; 
} 
} 
} 
}

asp.net jQuery Ajax ユーザー ログイン関数の実装に関連するその他の記事については、こちらをご覧ください。 PHP中国語ネットに注目!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。