asp.net 关于SessionId
原文:https://www.cnblogs.com/zhang1999/p/7278020.html
登陆页面使用Session存储验证码,导致会话产生SessionId,从而导致会话固定,登陆后用来存储用户信息的SessionId不变,容易被利用
//强行销毁当前用户的所有会话内容,但是只有加载页面的时候有效,导致登陆后没有用户信息
HttpContext.Current.Session.Abandon()
HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""))
改用Cookie存储
1.Cookie对象
(1).写入Cookie对象
HttpCookie cookie = new HttpCookie("data"); 注:定义cookie,name属性为data。
cookie.Values.Add("name","123"); 注:cookie是以键值对的方式存储。
cookie.Expires = DateTime.Now.AddYears(2); 注:过期时间设置为2年,也可以不设置过期时间,如果不设置cookie在浏览器关闭是自动清除。
Response.Cookies.Add(cookie); 注:写入Response对象。
(2).读取Cookie对象
HttpCookie cookie = Request.Cookies["data"]; 注:获取name属性为data的cookie
if(cookies !=null &&Cookies.HasKeys) 注:判断cookie是否存在
{
string s = cookies["name"]; 注:根据name键获取值
Response.Write(s);
}
2.Session对象
Session的定义和读取相对比Cookie容易
(1).定义Session对象
Session["Itemsession"] = "abc"; 注:Session的值为"abc",Session的类型是object所以可以赋任何类型。
(2).读取Session对象
string s =(string)Session["Itemsession"] ; 注:读取时的类型,要和定义时的类型一致。
Response.Write(s);
(3).Session特点
同一台电脑的同一个浏览器表示同一次会话,不同的浏览器表示不同的会话。
同一台电脑的同一个浏览器只能有一个Session。
Session的过期时间是在浏览器关闭时自动清除或用户不进行任何活动20分钟Session也会自动清除。
3.Cookie和Session的不同点和相同点
(1).相同点
Cookie对象和Session对象作用是在窗体之间传值。
等等
(2).不同点
Cookie将状态保存在客户端,Session将状态保存在服务器端。
Session相对Cookie,Session的安全性更高。
asp.net 关于SessionId的更多相关文章
- Asp.net页面跳转Session丢失问题
原本去年在做项目时,写好的一记篇博客分享给大家. Asp.net页面跳转Session丢失问题 编写人:CC阿爸 2014-4-2 l 近来在做泛微OA与公司自行开发的系统集成登录的问题.在使用 ...
- ASP.NET中在不同的子域中共享Session
天遇到了这个问题,于是研究了一下.要解决这个问题,首先就要明白一些Session的机理.Session在服务器是以散列表形式存在的,我们都知道Session是会话级的,每个用户访问都会生成一个Sess ...
- Asp.Net集群中Session共享
今天遇到了这个问题,于是研究了一下.要解决这个问题,首先就要明白一些Session的机理.Session在服务器是以散列表形式存在的,我们都知道Session是会话级的,每个用户访问都会生成一个Ses ...
- android如何与asp.net服务端共享session
近期需要实现一个功能,就是需要通过发送短信进行注册,现在想把短信验证码放到服务器的session值中,当客户端收到短信并提交短信码时由asp.net服务端进行判断,那么如何共享这个session那么需 ...
- ASP.NET实现头像剪切保存
利用swfupload上传头像,利用Jcrop来实现头像在线选择,然后提交个ashx对原头像进行剪切.代码如下: default.aspx: <%@ Page Language="C# ...
- ASP.Net与JSP如何共享Session值
思路: ASP.NET中序列化Session以二进制数据保存到数据库,然后由JSP读取数据库中的二进制数据反序列化成Session对象,再强制转化成JAVA的Session对象登录的ASPX文件 ...
- asp.net web开发——文件的上传和下载
HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.a ...
- asp.net使用WebUploader做大文件的分块和断点续传
HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.a ...
- asp.net实现大文件上传分片上传断点续传
HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.a ...
随机推荐
- visual studio 2017激活
VS2017专业版和企业版激活密钥 Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB- ...
- vim插件cscope使用方法
一.安装cscope 安装方式比较多样,可以在各自linux软件管理工具中安装,也可以去官网下载安装. sudo apt-get install cscope 二.插件安装 这里选择的是Vundle来 ...
- luogu P1147 连续自然数和 x
P1147 连续自然数和 题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所以 ...
- vim 复制
要复制到别的地方,用 "+y 来复制,注意是三个字符.gg"+yG 1.复制 1)单行复制 在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制: 2)多行复制 在命令模式 ...
- php 处理错误和异常技巧
set_time_limit(0); ini_set('memory_limit','1024M'); function exception_handler($exception) { echo &q ...
- codeforces D Salary Changing
题意:给你n个人,和s块钱,每个人都有一个工资区间,你给所有人都发工资.然后要他们工资的中位数最大. 思路:二分找那个值.那个值要满足至少有n/2+1个工资区间内. #include<cstdi ...
- TestingWhiz社区版2013版下载地址
TestingWhiz社区版 https://sourceforge.net/projects/testingwhiz-community-edition/ https://sourceforge.n ...
- Window7 系统下重新建立一个新分区
为了方便使用,准备在原来分区上再分割出一个分区,步骤如下 首先右击计算机,选择管理打开计算机管理窗口,选择磁盘管理,当前窗口右侧会出现当前计算机所有已存在的分区列表. 选择要进行分区的磁盘,右击选择压 ...
- FOUC(Flash Of Unstyled Content)文档样式闪烁
今天看面试题看到了这个新名词..我以前是没有发现过这种状况,应该是我一直都是将加载 CSS 的 link 标签写到 head 里的缘故吧. 什么是文档样式闪烁(Flash Of Unstyled Co ...
- JS-预留字符和转义字符转换
字符实体(Entity) 转义字符(Escape Sequence)也称字符实体 (Character Entity). 定义转义字符串的主要原因是: <和>等符号已经用来表示 HTML ...