这篇文章主要为大家展示了“如何基于ajax技术实现无刷新用户登录功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何基于Ajax技术实现无刷新用户登录功能”这
这篇文章主要为大家展示了“如何基于ajax技术实现无刷新用户登录功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何基于Ajax技术实现无刷新用户登录功能”这篇文章吧。
代码如下:
// 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 = '<a href="' + url.value + '">' + url.value + '</a>'
}
}
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;
}
/// <summary>
/// 判断验证是否正确
/// </summary>
/// <param name="checkCode"></param>
/// <returns></returns>
[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;
}
}
/// <summary>
/// 判断用户名及密码添加是否正确
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="_password">用户名密码</param>
/// <returns>bool</returns>
[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;
}
}
/// <summary>
/// 判断用户是不是有这进入管理留言版的权限
/// </summary>
/// <param name="userName">用户名</param>
/// <returns></returns>
[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;
}
}
/// <summary>
/// 返回Url值
/// </summary>
/// <returns></returns>
[AjaxPro.AjaxMethod]
public static string returnUrl()
{
string url = "";
try
{
url = System.Web.HttpContext.Current.Session["url"].ToString();
}
catch
{
url ="404";
}
return url;
}
}
下面是页面代码
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="logon.ascx.cs" Inherits="userControl_logon" %>
<script language="javascript" type="text/javascript" src="../JavaScript/logon.js">
</script>
<script language="javascript" type="text/javascript" src="JavaScript/logon.js">
</script>
<link href="../CSS/table_css.css" rel="stylesheet" type="text/css" />
<link href="CSS/table_css.css" rel="stylesheet" type="text/css" />
<body onload="OnLoad_checkCode();">
<div>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<table id="hideLogon" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td >用户名:</td>
<td><input type="text" id="txtuserName" /></td>
</tr>
<tr>
<td >密 码:</td>
<td>
<input id="txtpassword" type="password" /></td>
</tr>
<tr>
<td >验证码:</td>
<td >
<input type= "text" id="txtCheckCode" /><label id="lblNumber"></label></td>
</tr>
<tr>
<td ></td>
<td >
<input type="button" onclick="usersLogon();" value="登录" id="btnLogon" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td >
<div id="Url"></div>
</td>
</tr>
<tr>
<td align="center">
<table id="Returndefault" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default.aspx">返回首页</asp:HyperLink></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
以上是“如何基于Ajax技术实现无刷新用户登录功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!
--结束END--
本文标题: 如何基于Ajax技术实现无刷新用户登录功能
本文链接: https://lsjlt.com/news/70872.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0