如何使用ajax更新用户登陆,基于Ajax技术实现无刷新用户登录功能

本文介绍了如何利用Ajax技术实现在网页上进行无刷新用户登录功能。通过JavaScript函数处理用户输入,后台C#代码验证用户名、密码和验证码,确保数据安全并提供权限检查。在用户验证成功后,页面会根据用户权限动态显示相关内容,整个过程无需页面整体刷新,提高了用户体验。
摘要由CSDN通过智能技术生成

代码如下:

// JScript 文件

function usersLogon()

{

var userName = document.getElementById("txtuserName").value;

var password = document.getElementById("txtpassword").value;

var checkCode = document.getElementById("txtCheckCode").value;

var response = userControl_logon.CheckCodeIsRight(checkCode).value;

if(userName == "")

{

document.getElementById("txtuserName").focus();

return false;

}

else if(password == "")

{

document.getElementById("txtpassword").focus();

return false;

}

else if(checkCode =="")

{

document.getElementById("txtCheckCode").focus();

return false;

}

else

{

if(response == true)

{

//判断用户是否存在

userControl_logon.userNameAndPasswordIsExist(userName,password,userNameIsRight);

}

else

{

alert("验证码出错");

userControl_logon.checkCodeOperaotr(refreshCheckCode);

document.getElementById("txtpassword").value = "";

}

}

}

function userNameIsRight(res)

{

var userName = document.getElementById("txtuserName").value;

if(res.value == true)

{

//用户存在,但要看此用户有没有进入管理留言版权限,

userControl_logon.userNameIsRight(userName,CallBack);

}

else

{

alert("用户名或密码错误");

document.getElementById("txtpassword").value = "";

OnLoad_checkCode();

}

}

function CallBack(res)

{

if(res.value == true)

{

hideLogon();

var url = userControl_logon.returnUrl();

if ( url.value == 404)

{

showDefault();

}

else

{

document.getElementById("Url").innerHTML = '' + url.value + ''

}

}

else

{

alert("对不起你的权限不够");

document.getElementById("txtpassword").value = "";

OnLoad_checkCode();

}

}

//隐藏登录框

function hideLogon()

{

var element = document.getElementById("hideLogon")

element.style.display = "none"

}

//显示返回首页

function showDefault()

{

var element = document.getElementById("Returndefault")

element.style.display = "block"

}

function OnLoad_checkCode()

{

userControl_logon.checkCodeOperaotr(refreshCheckCode);

document.getElementById("txtuserName").focus();

// return false;

}

///重新得到新的验证吗

function refreshCheckCode(res)

{

document.getElementById("txtCheckCode").value = "";

document.getElementById("lblNumber").innerHTML = res.value;

}

function abce()

{

alert(document.getElementById("lblNumber").value)

}

下面代码

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Drawing;

using LHB_SQL_2005;

public partial class userControl_logon : System.Web.UI.UserControl

{

protected void Page_Load(object sender, EventArgs e)

{

if (!this.IsPostBack)

{

AjaxPro.Utility.RegisterTypeForAjax(typeof(userControl_logon));

}

}

[AjaxPro.AjaxMethod]

public static string checkCodeOperaotr()

{

string _checkCode = GeneralMethod.GenerateCheckCode();

System.Web.HttpContext.Current.Session["checkCode"] = _checkCode;

//返回验证码

return _checkCode;

}

///

/// 判断验证是否正确

///

///

///

[AjaxPro.AjaxMethod]

public static bool CheckCodeIsRight(string checkCode)

{

string _checkCode = (string)(System.Web.HttpContext.Current.Session["checkCode"]);

if (_checkCode == checkCode)

{

return true;

}

else

{

return false;

}

}

///

/// 判断用户名及密码添加是否正确

///

/// 用户名

/// 用户名密码

/// bool

[AjaxPro.AjaxMethod]

public static bool userNameAndPasswordIsExist(string userName, string _password)

{

string password = GeneralMethod.ToEncryptPassword(_password);

string executeString = "SELECT COUNT(*) FROM users WHERE userName = '" + userName.ToString() + "' AND password = '" + password + "'";

int count = int.Parse(GetCommand.ExecuteScalar(executeString));

if (count == 1)

{

System.Web.HttpContext.Current.Session["userName"] = userName;

return true;

}

else

{

return false;

}

}

///

/// 判断用户是不是有这进入管理留言版的权限

///

/// 用户名

///

[AjaxPro.AjaxMethod]

public static bool userNameIsRight(string userName)

{

string executeString = "SELECT [right] FROM role WHERE usersId = (select userNameId from users where userName = '" + userName + "')";

int count = int.Parse(GetCommand.ExecuteScalar(executeString));

if (count > 0)

{

return true;

}

else

{

return false;

}

}

///

/// 返回Url值

///

///

[AjaxPro.AjaxMethod]

public static string returnUrl()

{

string url = "";

try

{

url = System.Web.HttpContext.Current.Session["url"].ToString();

}

catch

{

url ="404";

}

return url;

}

}

下面是页面代码

用户名:
密 码:
验证码:

返回首页

以上所述是小编给大家介绍的基于Ajax技术实现无刷新用户登录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值