1.自动登录实现

<body><form id="form1" runat="server"><div>用户名:<input type="text" name="txtName" value="<%=UserName%>" /><br />密&ensp;&ensp;码:<input type="password" name="txtPwd" /><br />验证码:<input type="text" name="txtCode" /><img src="ValidateImageCode.ashx" id="imgCode" /><a href="javascript:void(0)" id="validateCode">看不清</a><br /><input type="submit" value="登录" /><input  type="checkbox" name="autoLogin" value="auto" id="checkId" on="xuanze()"/>自动登录<span style="font-size: 14px; color: red"><%=Msg %></span></div></form>
</body>
using System;
using System.Collections.Generic;
using _0715StudentProject.Model;
using _0715StudentProject.Common;
using _0715StudentProject.BLL;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;public partial class _2020_07_19_UserLogin : System.Web.UI.Page
{public string Msg { get; set; }public string UserName { get; set; }protected void Page_Load(object sender, EventArgs e){if (IsPostBack){// string userName = Request.Form["txtxName"];//UserName = userName;if (CheckValidateCode())//判断验证码正确与否{CheckUserInfo();}else{//验证码错误Msg = "验证码错误!!";}}else{//判断Cookie中的值CheckCookieInfo();}}#region 检验Cookie中的值protected void CheckCookieInfo(){if (Request.Cookies["tsp1"] !=null && Request.Cookies["tsp2"] != null){string userName = Request.Cookies["tsp1"].Value;string userPwd = Request.Cookies["tsp2"].Value;//校验UserInfoService userInfoService = new UserInfoService();UserInfo userInfo = userInfoService.GetUserInfoByName(userName);if (userInfo!=null){//注意:在添加用户或者注册用户时一定要将用户输入的密码加密后在存储到数据库中if (userPwd == WebCommon.GetMd5String(WebCommon.GetMd5String(userInfo.UserPass))){Session["userInfo"] = userInfo;Response.Redirect("UserInfoList.aspx");}}Response.Cookies["tsp1"].Expires = DateTime.Now.AddDays(-1);Response.Cookies["tsp2"].Expires = DateTime.Now.AddDays(-1);}}#endregion#region 判断用户名  密码protected void CheckUserInfo(){//获取用户输入的用户名  密码string userName = Request.Form["txtName"];UserName = userName;string userPwd = Request.Form["txtPwd"];//校验用户名和密码UserInfoService userInfoService = new UserInfoService();string msg = string.Empty;UserInfo userInfo = null;//判断用户名  密码if (userInfoService.ValidateUserInfo(userName, userPwd, out msg, out userInfo)){//判断用户是否选择了 【自动登录】  按钮//页面上有多个复选框时,只能选中复选框的值提交到服务端if (!string.IsNullOrEmpty(Request.Form["autoLogin"])){HttpCookie cookie1 = new HttpCookie("tsp1",userName);HttpCookie cookie2 = new HttpCookie("tsp2",WebCommon.GetMd5String(WebCommon.GetMd5String(userPwd)));cookie1.Expires = DateTime.Now.AddDays(7);cookie2.Expires = DateTime.Now.AddDays(7);Response.Cookies.Add(cookie1);Response.Cookies.Add(cookie2);}Session["userInfo"] = userInfo;Response.Redirect("UserInfoList.aspx");}else{Msg = msg;}}#endregion#region  判断验证码正确与否protected bool CheckValidateCode(){bool isSucess = false;if (Session["validateCode"] != null)//在使用Session时一定要检验是否为空{string txtCode = Request.Form["txtCode"];//获取用户输入的验证码string sysCode = Session["validateCode"].ToString();if (sysCode.Equals(txtCode, StringComparison.InvariantCultureIgnoreCase)){isSucess = true;Session["validateCode"] = null;}}return isSucess;}#endregion
}

2.AJAX

jkhjkkhjul法国如果

AJAX:Asynchronous JavaScript and XML

中文意思:异步JavaScript和XML。指一种创建交互式网页应用的网页开发技术。AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词。

不是指一种单一的技术,而是有机地利用了一系列相关的技术:

web标准( Standards-Based Presentation )XHTML+CSS的表示,使用 DOM( Document Object Model )进行动态显示及交互,使用 XML 和 XSLT 进行数据交换及相关操作,使用 XMLHttpRequest 进行异步数据查询、检索。

简单理解为:JavaScript + XMLHttpRequest + CSS +服务器端 的集合。

Ajax在本质上是一个浏览器端的技术 ,Ajax技术之主要目的在于局部交换客户端及服务器间之数据 。这个技术的主角XMLHttpRequest 的最主要特点,在于能够不用重新载入整个版面来更新资料,也就是所谓的Refresh without Reload(轻刷新)与服务器之间的沟通,完全是透过Javascript 来实行 。使用XMLHttpRequest 本身传送的数据量很小,所以反应会更快,也就让网络程式更像一个桌面应用程序 。AJAX 就是运用Javascript 在后台悄悄帮你去跟服务器要资料,最后再由Javascript 或DOM 来帮你呈现结果,因为所有动作都是由Javascript 代劳,所以省去了网页重载的麻烦

3.为XMLHttpRequest对象设置请求参数

GET方式

xhr.open("GET", "GetAreasByAjax.ashx?isAjax=1", true);            GET方式请求可以设置浏览器不使用缓存。
xhr.setRequestHeader("If-Modified-Since", "0");发送: xhr.send(null);//GET方式

POST方式:

设置参数:xhr.open("POST", "GetAreasByAjax.aspx", true);

添加请求头:xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

发送:xhr.send("isAjax=1&na=123");//POST方式

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxDemo.aspx.cs" Inherits="_2020_7_20_AjaxDemo" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script src="../js/jquery-1.7.1.js"></script><script type="text/javascript">$(function () {$("#btnGetDate").click(function () {//开始通过AJAX向服务器发送请求var xhr;if (XMLHttpRequest) {//表示用户使用高版本IE,谷歌 火狐等xhr = new XMLHttpRequest();} else {//低IExhr = new ActiveXObject("Microsoft.XMLHTTP");}xhr.open("get", "GetDate.ashx?name=zhangsan&age=12", true);xhr.send();//开始发送//回调函数:当服务器将数据发挥给浏览器后,自动调用该方法。xhr.onreadystatechange = function () {if (xhr.readyState == 4) {//表示服务端已经将会数据完整返回,并且浏览器全部接受完毕if (xhr.status == 200) {//判断状态码是否为200alert(xhr.responseText);}}}});});</script>
</head><body><form id="form1" runat="server"><div><input type="button" value="获取服务端时间" id="btnGetDate" /></div></form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxPostDemo.aspx.cs" Inherits="_2020_7_20_AjaxPostDemo" %><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script src="../js/jquery-1.7.1.js"></script><script type="text/javascript">$(function () {$("#btnPost").click(function () {var xhr;if (XMLHttpRequest) {xhr = new XMLHttpRequest();} else {xhr = new ActiveXObject("Miscrosoft.XMLHTTP");}xhr.open("post", "GetDate.ashx", true);xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");xhr.send("name=zhangsan&pwd=12");xhr.onreadystatechange = function () {if (xhr.readyState == 4) {if (xhr.status == 200) {alert(xhr.responseText);}}}});});</script>
</head>
<body><form id="form1" runat="server"><div><input type="button" value="获取数据" id="btnPost" /></div></form>
</body>
</html>

4.传值练习

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="JqueryAjax.aspx.cs" Inherits="_2020_7_20_JqueryAjax" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script src="../js/jquery-1.7.1.js"></script><script type="text/javascript">$(function () {$("#btnGet").click(function () {$.get("GetDate.ashx", { "name": "lisi", "pwd": "123" }, function (data) {alert(data);});});$("#btnPost").click(function () {$.post("ShowData.aspx", { "name": "lisi", "pwd": "123" }, function (data) {alert(data);});});$("#btnAjax").click(function () {$.ajax({type: "POST",url: "GetDate.ashx",data: "name=John&loaction=Boston",success: function (msg) {alert("Data Save:" + msg);}});});});</script>
</head>
<body><form id="form1" runat="server"><div><input type="button" value="GET获取数据" id="btnGet" /><input type="button" value="POST获取数据" id="btnPost" /><input type="button" value="AJAX获取数据" id="btnAjax" /></div></form>
</body>
</html>

ASP.Net学习(七)相关推荐

  1. ASP.net 学习路线(详细)

    ASP.net 学习路线(详细) 浏览:5632 | 更新:2013-12-13 16:33 | 标签: asp.net 百度经验:jingyan.baidu.com .net学习路线 入门篇1.   ...

  2. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  3. STL源码剖析学习七:stack和queue

    STL源码剖析学习七:stack和queue stack是一种先进后出的数据结构,只有一个出口. 允许新增.删除.获取最顶端的元素,没有任何办法可以存取其他元素,不允许有遍历行为. 缺省情况下用deq ...

  4. 最新最全的ASP.NET学习资源大全

    最新最全的ASP.NET学习资源大全(网络摘要) 本文为中国ASP.NET开发网原创文章,转载必须注明出处. 名称: ASP.NET 地址:http://www.asp.net 介绍:微软.NET w ...

  5. asp.net学习资源汇总

    名称:快速入门 地址:http://chs.gotdotnet.com/quickstart/ 描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例 ...

  6. asp.net学习历程。

    很多书需要看滴. csdn的asp.net学习历程 转载于:https://www.cnblogs.com/xxcainiao/archive/2007/06/21/791618.html

  7. asp.net学习之再论sqlDataSource

    asp.net学习之再论sqlDataSource 原文:asp.net学习之再论sqlDataSource 本节从上一节没有阐述的几个方面,再讨论一下SqlDataSource的用法及注意的事项. ...

  8. OpenCV与图像处理学习七——传统图像分割之阈值法(固定阈值、自适应阈值、大津阈值)

    OpenCV与图像处理学习七--传统图像分割之阈值法(固定阈值.自适应阈值.大津阈值) 一.固定阈值图像分割 1.1 直方图双峰法 1.2 OpenCV中的固定阈值分割 二.自动阈值图像分割 2.1 ...

  9. PyTorch框架学习七——自定义transforms方法

    PyTorch框架学习七--自定义transforms方法 一.自定义transforms注意要素 二.自定义transforms步骤 三.自定义transforms实例:椒盐噪声 虽然前面的笔记介绍 ...

  10. asp.net学习之再论sqlDataSource 1

    asp.net学习之再论sqlDataSource 本节从上一节没有阐述的几个方面,再讨论一下SqlDataSource的用法及注意的事项.     上一节的链接地址如下:http://www.cnb ...

最新文章

  1. HyperLedger Fabric 错误记录
  2. mysql主从同步配置超详细_MySQL主从同步配置
  3. 免费网络学术资源获取
  4. KDD2021 | USCB:展示广告约束出价问题的通用解决方案
  5. 按键精灵易语言c,求助(把按键精灵的源码转为易语言的)
  6. sql server操作案例
  7. 微信客户端<->腾讯微信服务器<->开发者服务器
  8. python命令窗口中怎么导入numpy_科学网—windows7下python3.6如何导入numpy,Astropy - 杨涛只的博文...
  9. 解决“Class org.apache.hadoop.hdfs.DistributedFileSystem not found“问题
  10. 未能加载文件或程序集mysql.web.v20__关于MySQL Server影响ASP.NET网站使用的问题:未能加载文件或程序集MySql.Web.v20...
  11. 谷歌浏览器的一个新特点—关于获取iframe的parent对象
  12. 一个很好的makefile例子(经典)
  13. [三思笔记]---一步一步学DataGuard
  14. java中poi搜索工程_POI搜索简介
  15. win10底部任务栏不见了怎么办
  16. Anki 学习指南(优质资源 教程总结)
  17. 吃瓜教程(2021.07)task1(1-2章)
  18. 弹跳机器人 桌游_《碰撞机器人 Ricochet Robots 》介绍
  19. DBSCAN原理及matlab仿真代码
  20. 下载模板引擎art-template时出现的问题及解决方案

热门文章

  1. 程序人生 - 戴森 Dyson HD01 和 HD03 区别?
  2. 解决[<Element i at 0x18a666abf08>]问题
  3. tortoiseGit小白教程
  4. android 模拟apk安装广播,安装APK文件到Android模拟器 及shell
  5. 【Jailhouse 文章】Look Mum, no VM Exits
  6. oracle lob move tablespace
  7. 区域中找不到无线网络解决办法
  8. 作业7--南通大学教务系统体验分析
  9. 冒泡法和选择法 排序算法实现
  10. 谈谈光纤跳线的选购要点【华光昱能知识与您分享】