关于ASP.Net页面传值的一些学习知识

首先是ASP.Net的各种传值方式,这里引用以下链接阅读,本人目前使用的是Session和Cookie传值方法。
[1]: https://www.cnblogs.com/applelure/archive/2008/05/04/1182202.html

关于cookie与session的一些区别:
1、cookie存客户端,session存服务端。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
Session的运行图了解:

Cookie运行原理图解:

**详细参考链接放在以下链接里面
Cookie概念理解
Session概念理解

//写入Cookie三种方式//方式1var cookie = new HttpCookie("name", "joye888");Response.Cookies.Add(cookie);//方式2Response.Cookies["name1"].Value = "joye8881";Response.Cookies["name1"].Expires = DateTime.MaxValue;//方式3var acookie = new HttpCookie("name2");acookie.Value = "joye8882";acookie.Expires = DateTime.MaxValue;Response.Cookies.Add(acookie);//写入多值Cookie//方式1://Response.Cookies["userinfo"]["name"].Value = "joye888";//Response.Cookies["userinfo"].Expires = DateTime.MaxValue;//方式2:HttpCookie cookie2 = new HttpCookie("userinfo");cookie2.Values["name"] = "joye888";cookie2.Expires = DateTime.Now.AddDays(1);Response.Cookies.Add(cookie2);//读取Cookie的值之前,应该确保该 Cookie 确实存在。否则,您将得到一个异常//读取Cookievar httpCookie = Request.Cookies["name1"];if (httpCookie != null){var name = httpCookie.Value;}//多值Cookie的读取var httpCookie1 = Request.Cookies["userInfo"];if (httpCookie1 != null){var name1 = httpCookie1["name"];}//修改和删除cookie //修改的方法与创建方法相同var cookieEdit = new HttpCookie("name", "joye888Edit");cookieEdit.Expires = DateTime.Now.AddDays(-1); //将其有效期设置为过去的某个日期。当浏览器检查 Cookie 的有效期时,就会删除这个已过期的 Cookie。Response.Cookies.Add(cookieEdit);//如果有主站及二级域名站且cookie要共享的话则要加入如下设置cookie.Domain = ".cnblog.com";cookie.Path = "/";
public static void AddCookie(string key,string value,int expires){var acookie = new HttpCookie(key);acookie.Value = value;acookie.Domain = ".cnblog.com";acookie.Path = "/";acookie.Expires = DateTime.Now.AddMinutes(expires);HttpContext.Current.Response.Cookies.Add(acookie);}public static string GetCookie(string key){var httpCookie = HttpContext.Current.Request.Cookies[key];if (httpCookie != null){return httpCookie.Value;}return "";}

Cookie的实际运用
登录记住用户名和密码示例
页面代码:

<body><form id="form1" method="post" action="rembPage.aspx"><div>帐号: <input type="text" name="userName" /><br />密码 :<input type="password" name="pass" /><br />记住我: <input type="checkbox" value="rem" name="sele1" /><br /><input type="submit" value=" 登录 " /> </div></form>
</body>
if (Request.Cookies["userName"] == null && Request.Cookies["passWord"] == null)  //判断是否存在cookie,如果存在表示上次选择了记住我{if (Request.Form["userName"] != null && Request.Form["pass"] != null){String userName = Request.Form["userName"];String userPassWord = Request.Form["pass"];if (userName == "admin" && userPassWord == "123"){if (Request.Form["sele1"] != null){HttpCookie cookieUserName = new HttpCookie("userName", userName);  //创建帐号的cookie实例HttpCookie cookiePassWord = new HttpCookie("passWord", userPassWord);cookieUserName.Expires = DateTime.Now.AddDays(2);   //设置帐号cookie的过期时间,当前时间算往后推两天cookiePassWord.Expires = new DateTime(2012, 5, 27);   //设置密码cookie的过期时间,过期时间为2012年5月27日Response.Cookies.Add(cookieUserName);  //将创建的cookieUserName文件输入到浏览器端Response.Cookies.Add(cookiePassWord);Response.Redirect("Index.aspx"); //跳转到你想要的页面}else{Response.Redirect("Index.aspx");//即便不记住密码也要跳转}}}}else{Response.Redirect("Index.aspx");//如果记住密码,第二次登录将直接进入Index.aspx页面}

一、Cookie的基本概念
Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。

关于Cookie的知识还需要了解以下几点。

1、Cookie只是一段字符串,并不能执行。

2、大多数浏览器规定Cookie大小不超过4K,每个站点能保存的Cookie不超过20个,所有站点保存的Cookie总和不超过300个。

3、除了Cookie外,几乎没有其他的方法在客户端的机器上写入数据(就连Cookie的写入操作也是浏览器进行的)。当然,连Cookie都可以通过浏览器安全配置来禁止。

微软Internet Explorer 设置方法:工具 > Internet选项 > 隐私 页 调节滑块或者点击“高级”,进行设置.

4、在使用Cookie时,必须意识到其固有的安全弱点。Cookie毕竟是存放于客户端的。因此不要在Cookie中保存保密信息,如用户名、密码、信用卡号等。在Cookie中不要保存不应该由用户掌握的内容,也不要保存可能被其他窃取Cookie的人控制的内容。

5、Cookie文件存放地址(IE浏览器查看 工具 > Internet选项 > 常规选项卡-设置-查看文件)

二、Cookie使用的注意事项
Cookie虽然是一个简单实用的对象,但是我们也要注意Cookie的工作原理、大小限制以及安全性等,大致可以归纳为以下几点。

1、存储的物理位置。客户端的Cookies文件夹内。

2、存储的类型限制。字符串。

3、状态使用的范围。当前请求上下文的上下文都能访问到Cookie,Cookie对每个用户来说都是独立的。

4、存储的大小限制。每个Cookie不超过4K数据。每个网站不超过20个Cookie。所有网站的Cookie总和不超过300个。

5、生命周期。每个Cookie都有自己的过期时间,超过了过期时间后失效。

6、安全与性能。存储在客户端,安全性差。对于敏感数据建议加密后存储。

7、优点缺点与注意事项。可以很方便地关联网站和用户,长久保存用户设置。

三、Session概述
Session用于存储特定的用户会话所需的信息 。 Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议。

Session中文是“会话”的意思,在ASP.NET中代表了服务器与客户端之间的“会话”。Session的作用时间从用户到达某个特定的Web页开始,到该用户离开Web站点,或在程序中利用代码终止某个Session结束。引用Session 则可以让一个用户访问多个页面之间的切换也会保留该用户的信息。

系统为每个访问者都设立一个独立的Session对象,用以存储Session变量,并且各个访问者的Session对象互不干扰。

Session与Cookie是紧密相关的。 Session的使用要求用户浏览器必须支持Cookie,如果浏览器不支持使用Cookie,或者设置为禁用Cookie,那么将不能使用Session。
Session信息对客户来说,不同的用户用不同的Session信息来记录。当用户启用Session时,ASP自动产生一个SessionID.在新会话开始时,服务器将SessionID当做cookie存储在用户的浏览器中。

四、Session的curd操作

//写入Session["UserName"] = "joye888";//读取var userName = Session["UserName"].ToString();Response.Write(userName);//遍历IEnumerator sessionEnum = Session.Keys.GetEnumerator();while (sessionEnum.MoveNext()){Response.Write(Session[sessionEnum.Current.ToString()].ToString() + " ");} //销毁Session.Abandon(); //结束会话Session.Clear();//不结束会话

最后说明本文不是本人亲写,主要是借鉴了博客员博主 Joye.Net写的两篇文章,对我的启发很大,所以很感谢他。下面(2)(3)附上这两篇参考文章的链接地址。如果本人觉得侵权了可以立马和我联系,立删。
[1]: https://www.cnblogs.com/applelure/archive/2008/05/04/1182202.html
[2]:Session详解
[3]:Cookie详解

关于ASP.Net页面传值的一些学习知识(一)他人的经验相关推荐

  1. ASP.NET页面传值的几种方式

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交,    <form action= "target.aspx" method = "post&q ...

  2. ASP.NET页面传值的各种方法和分析

    Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题 ...

  3. ASP.NET页面传值方式

    P.NET页面间传值方式 方式1:     在接收页 的html代码里加上一行: <%@ Reference Page = "WebForm1.aspx" %>     ...

  4. C/S ASP.NET页面传值汇总

    一. QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或对象的话,就不 ...

  5. 关于HTML页以Get方法向asp.net页面传值乱码的解决

    这个问题是最近偶然发现的,朋友说我个人做那个基于Lucene的搜索引擎,存在一个问题,就是只能搜索英文,不能搜索中文. 我把代码仔细看了一下,没发现问题,但是在测试的时候确实存在这样的问题. 我查看传 ...

  6. ASP.NET 页面传值中文乱码问题

    代码如下: 传值前台页面: <a href='../../Common/Download.aspx?url=<%#Eval("DFILE_URL") %>& ...

  7. Asp.Net页面传值的方法简单总结【原创】

    1.QueryString 当页面上form按照get的方式向页面发送请求数据的时候,web server会将请求数据放入 一个QEURY_STRING的环境变量中,然后通过QeueryString方 ...

  8. ASP.NET跨页面传值(二)

    在网页应用程序的开发中,页面之间的传值应该是最常见的问题了. 在这篇文章里,azamsharp 将为我们介绍一些ASP.NET页面传值的方式.本文所举的例子非常简单,仅仅包含了一个文本框和几个按钮,当 ...

  9. ASP.NET 页面之间传值的几种方式

    对于任何一个初学者来说,页面之间传值可谓是必经之路,却又是他们的难点.其实,对大部分高手来说,未必不是难点. 回想2016年面试的将近300人中,有实习生,有应届毕业生,有1-3年经验的,有3-5年经 ...

最新文章

  1. 图像变换——等距变换,相似变换,仿射变换,投影变换
  2. ribbon 默认负载均衡 是什么_面试官:说说Ribbon是如何实现负载均衡的?
  3. 上海AI高地雏形初现 徐汇区抢占产业潮头
  4. javascript简介及基本语法
  5. java程序员保持天天快乐的6个习惯
  6. 计算程序执行时间的函数
  7. Scanner类+Random
  8. Spring Batch教程–最终指南
  9. 驱动备份工具哪个好_大庆seo排名优化推广公司工具哪个好
  10. 性价比还是小米狠:两场下来友商完败?
  11. 应用层协议:HTTP
  12. G-TAD: Sub-Graph Localization for Temporal Action Detection
  13. 微信单挑三大运营商,继短信垄断之后,电话革命战已打响
  14. Spyder中文版补丁下载及安装
  15. 《使用Nsis打包安装程序》
  16. 如何配置 SSH 免密码登录
  17. openssl建立证书和私钥方法
  18. 图灵奖得主(麦卡锡\霍尔)
  19. Ubuntu php安装过程,Ubuntu下Apache+PHP+MySQL安装过程详解
  20. openbsd运行Linux应用程序,OpenBSD操作系统(1)——服务管理程序rcctl 类似linux下的service或syst...

热门文章

  1. STM32F103C8T6下载时读芯片信息失败常见问题
  2. 交叉编译mosquitto库
  3. c语言 飞机,C语言写的飞机源码
  4. 前端培训ajax都有哪些优点和缺点
  5. 开源报表 Davinci 详细介绍
  6. 地理、Mercator(墨卡托)、UTM 之间关系
  7. Draw Triangel 1. HackerRank SQL Problem
  8. 一加6可以刷的rom_一加6T 刷miui教程
  9. segnet和unet区别_UNet介绍
  10. 树莓派3b+简单入门