ajax无刷新登陆原理,基于Ajax技术实现无刷新用户登录功能

2023-11-09

感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

代码如下:

// 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 = "";

onl oad_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 = "";

onl oad_checkCode();

}

}

//隐藏登录框

function hidelogon()

{

var element = document.getElementById("hidelogon")

element.style.display = "none"

}

//显示返回首页

function showDefault()

{

var element = document.getElementById("Returndefault")

element.style.display = "block"

}

function onl oad_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;

}

}

用户名:
密 码:
验证码:

返回首页

原文链接:http://blog.csdn.net/hanchuang213/article/details/54314313

(编程之家 jb51.cc jb51.cc)

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ajax无刷新登陆原理,基于Ajax技术实现无刷新用户登录功能 的相关文章

  • C++ 日期 & 时间

    C 标准库没有提供所谓的日期类型 C 继承了 C 语言用于日期和时间操作的结构和函数 为了使用日期和时间相关的函数和结构 需要在 C 程序中引用
  • 亚马逊AWS营收1700亿,阿里云213亿,差距巨大能追赶吗? ...

    信息科技正在从移动互联向万物互联转变 在这个新时代 国内BAT三大互联网巨头在去年纷纷调整云战略 腾讯新成立云与智慧产业事业群积极面向产业互联网转型后 继腾讯提升云服务地位后 随后阿里巴巴和百度也做出相应调整 阿里云升级为阿里云智能事业群
  • 灵星之光-1:调制解调、卷积神经网络异曲同工

    无线通信中的解调 以QAM调制为例 QAM编码的个数 类似图像分类中的类别的个数 调制的过程 类似 深度学习的过程 不同的是 通信中的模型 不需要训练 特征是直接预先编码好了 解调的过程 就是 分类的过程 根据收到的各种变形的电磁波的波形
  • Springboot中利用AOP创建日志文件log4j

    Springboot中利用AOP创建日志文件log4j pom xml文件导入依赖
  • shell 多行注释

    在写 shell 脚本的时候 经常需要注释多行命令 但在每一行前输入 很不方便 1 DOCUMENT 可以采用 HERE DOCUMENT 特性 实现多行注释 这是比较稳妥的作法 比如 bin bash lt lt COMMENT your
  • 火焰检测的相关步骤及算法综述

    引言 随着人类社会的发展进步 火灾成为了不可忽视的多发性问题 火灾一次次展示了其对于人员伤亡和财产的巨大破坏性 火灾的预防和检测一直是人类与火灾斗争过程中关注的焦点 1 近些年来 随着数字通信技术 计算机技术的发展 数字图像处理技术获得了广
  • Yolo系列目标检测 V1-V8

    当two stage proposal detection 系列的算法在目标检测界大展身手的时候 不禁会有人问道 Why we have to train proposal first 于是 便有学者展开了关于one stage算法的研究
  • 修改jupyter notebook的默认路径

    前言 由于不想占用C盘空间 所以想修改jupyter notebook的默认路径 第一次打开anaconda中自带的jupyter notebook 默认路径都是C Users Admin 自己的用户名 新建想默认打开的文件夹 在你想以后默
  • N沟道和P沟道MOS FET开关电路

    在电路中常见到使用MOS FET场效应管作为开关管使用 下面举例进行说明 如图1所示 使用了P沟道的内置二极管的电路 此处二极管的主要作用是续流作用 电路是Li电池充放电电路 当外部电源断开时采用Li电池进行内部供电 即 5V电源断开后Q1
  • python做量化交易干货分享

    python做量化交易干货分享 http www newsmth net nForum article Python 128763 最近程序化交易很热 量化也是我很感兴趣的一块 国内量化交易的平台有几家 我个人比较喜欢用的是JoinQuan
  • Java、解一元二次方程

    可以使用下面的公式求一元二次方程 ax 2 bx c 0 的两个根 r1 b b 2 4ac 2a r2 b b 2 4ac 2a b 2 4ac 称作一元二次方程的判别式 如果它是正值 那么一元二次方程就有两个实数根 如果它为 0 方程式
  • eclipse代码格式化的注释缩进问题

    未修改前ctrl shift f格式化代码 注释缩进不能和代码保持一致 拿到要被转换的字符串 Scanner scanner new Scanner System in String str scanner nextLine 通过内存流实现
  • vue3 props传入的组件无法正常刷新

    问题描述 vue3 写入的数据无法正常渲染 但是从子组件获取正常 使用props导入 解决方案 在setup导出的时候 直接导入props 而不是导入props 变量 错误用法 props var1 let var1 张三 setup re
  • phpstudy安装教程

    1 下载phpstudy 2 安装文件 3 把pikachu文件解压到phpstudy phptutorial WWW 文件名字改成pikachu 4 启动 MySQL管理器 输入账号密码 确定 5 打开浏览器 输入127 0 0 1 pi
  • 微信开放平台_第三方平台授权流程_接口调用令牌

    六 接口调用令牌 6 1 官网说明 在公众号 小程序接口调用令牌 authorizer access token 失效时 可以使用刷新令牌 authorizer refresh token 获取新的接口调用令牌 注意 authorizer
  • Qt开发环境下载和安装

    文档下载地址 https download csdn net download blackbattery 10439812 Qt是跨平台的图形开发库 目前由Digia全资子公司 Qt Company 独立运营 官方网址 http www q
  • 关于C/C++标识符、常量、变量的理解

    1 标识符是由字母和数字构成的序列 第一个字符必须是英文字母 下划线 也被看成是字母 大写字母和小写字母是不同的 标识符可以为任意长度 对于内部标识符来说 至少前31 个字母是有效的 在某些实现中 有效的字符数可能更多 2 在程序执行过程中
  • 数组组成的最小数字

    题目 最小数字 给定一个整型数组 请从该数组中选择3个元素组成最小数字并输出 如果数组长度小于3 则选择数组中所有元素来组成最小数字 输入描述 一行用半角逗号分割的字符串记录的整型数组 0 lt 数组长度 lt 100 0 lt 整数的取值
  • 【TypeScript】项目中对于TypeScript的打包处理

    webpack 通常情况下 实际开发中我们都需要使用构建工具对代码进行打包 TS同样也可以结合构建工具一起使用 下边以webpack为例介绍一下如何结合构建工具使用TS 步骤 初始化项目 进入项目根目录 执行命令 npm init y 主要

随机推荐

  • java 矩阵[多维数组]源代码

    1 import java util Random 2 3 矩阵类 4 public class Matrix 5 6 private int matrix 7 8 Random random new Random 9 10 构造方法 11
  • YiOVE书源:不只是书源,还有对书源的一些预处理,比如提前查看书源数量,以及包含哪些小说站

    引言 我是一个小说爱好者 阅读APP更是其中的效果斐然的不错宝器 平时自己也会收集一些书源 但是在这过程中产生了一些需求 比如 书源的数目是多少 书源链接还有效吗 于是 自己基于Flask写了一个程序 可以解决以上需求 并且可以在网页端显示
  • JqGrid完整例子

    之前写过一篇过于ajax异步加载jqgrid的文章 那个只是一个特殊的情况 如果创建不同数据库表的jqgrid 必须分别写servlet dao层和连接池 很麻烦 今天我写了一个万能的写法 客官只要在前台js中写入表格名称和字段名称即可实现
  • java 中秒杀逻辑

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 考虑要点 二 预减库存 三 秒杀超卖 四 排它锁是什么 前言 什么是秒杀 是一种高并发的技术 许多电商网站都是采用这样的技术应对突发流量的问题 一 考虑要
  • tensorflow提示缺少cudnn64_7.dll

    解决思路 下载一个 https developer nvidia com rdp cudnn download 下载后的压缩包有三个文件 把三个文件添加到对应的地方即可
  • Linux ping www.baidu.com时报错 Name or service not known原因

    一般是你配置的ens33的IPADDR跟虚拟机网络编辑器里的网段不一样 编辑 虚拟网络编辑器 NAT模式 NET设置 这里可以更改net设置里的参数 vi etc sysconfig network scripts ifcfg ens33
  • 红外寻迹原理以及STM32 GPIO的输入检测

    红外寻迹原理以及GPIO的输入检测 一 红外寻迹原理 采用YL 70 红外寻迹壁障模块 红外发射管 透明 发出红外光 如果红外光照在浅色平面 则红外光被反射 并且被红外接收管 黑色 接收 同时对应的输出接口输出低电平 0 红外主板上对应的L
  • 数据压缩实验五:JPEG文件解码实验分析

    一 实验原理 1 JPEG编码原理 JPEG 是Joint Photographic Experts Group 联合图像专家小组 的缩写 是第一个国际图像压缩标准 jpeg jpg是最常用的图像文件格式 是一种有损压缩格式 JPEG 编码
  • linux命令行常用的移动操作

    linux命令行常用的移动操作 1 光标快速切换到行尾行首 Ctrl a 行首 Ctrl e 行尾 2 删除至行尾 Ctrl k 3 删除命令行的命令 Del 删除属光标所在处的字符 Ctrl d 删除光标所在处的字符 BACKSPACE或
  • PAT乙级 1010 一元多项式求导 (25分)

    1010 一元多项式求导 25分 设计函数求一元多项式的导数 注 x n n为整数 的一阶导数为nxn 1 输入格式 以指数递降方式输入多项式非零项系数和指数 绝对值均为不超过 1000 的整数 数字间以空格分隔 输出格式 以与输入相同的格
  • 如何搭建一台属于自己的服务器

    对于新手小白来说 我推荐使用大厂们的服务器 比如阿里云 腾讯云等 这种不仅有强大的大厂背景支持 且不用担心维护 界面功能友好完善 非常适合新手小白 我使用的是腾讯云 所以接下来以腾讯云为例讲解 服务器类型的选择 个人用户的话推荐大家使用 轻
  • 图文详解MOS管的米勒效应

    如下是一个NMOS的开关电路 触发信号VG1设置DC电平2V 方波 振幅2V 频率50Hz T2的开启电压2V 所以MOS管T2会以周期T 20ms进行开启和截止状态的切换 首先仿真Vgs和Vds的波形 会看到Vgs 2V的时候有一个小平台
  • Java自动化测试语言高级之Iterator

    Java自动化测试语言高级之Iterator 文章目录 Java自动化测试语言高级之Iterator Java Iterator 迭代器 Java Iterator 迭代器 Java Iterator 迭代器 不是一个集合 它是一种用于访问
  • shell 字符串数组的使用

    ex 简单例子 str h ee h i h ed0llo for s in str do echo s done PS 最开始折腾好久 是因为我写了一个str6 5 这样的变量 导致 一直报错 还以为是 数组声明方式有问题 我想调用另一个
  • 正点原子IMX6ULL开发板通过网络修改系统时间

    设置时区 开发板系统为正点原子出厂系统 通过网络获取时间 需要设置开发板时区 首先使用date指令查看系统当前时区 此时系统的时区为UTC 世界协调时 这个时候直接通过网络获取时间 得到的时间是UTC时区下的时间 需要先将系统的时区设置为中
  • matlab如何实现不同的值显示不同的颜色

    举例一 一 视图 二 代码 作者 CoderMan 链接 https www zhihu com question 503639152 answer 2257427351 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载
  • 二进制算法_本地二进制模式算法:其背后的数学❗️

    二进制算法 介绍 Introduction The main idea behind LBP is to describe the neighborhood of image elements using binary codes This
  • C++全局变量的初始化过程

    全局变量在main 前完成初始化 调用构造函数 在调用构造函数前 全局变量已分配空间 内存全0 多个全局变量的初始化 按照代码编译的顺序 注意 全局变量被访问前可能它还没有调用构造函数初始化 如果一个项目中 多个dll都用到一个全局变量在共
  • 开发过程中数据库使用反引号

    开发遇到的反引号 不使用会报错 反引号是为了区分MySQL的保留字与普通字符而引入的符号 index insert into sys menu menu name pid index url values 章节测测 2 kk
  • ajax无刷新登陆原理,基于Ajax技术实现无刷新用户登录功能

    感兴趣的小伙伴 下面一起跟随编程之家 jb51 cc的小编两巴掌来看看吧 代码如下 JScript 文件 function userslogon var userName document getElementById txtuserNam