如何获取SessionID???

qingYun1029 2010-04-06 08:42:26
当一个用户访问我的网站的首页时,我想获取该用户的SessionID:
以下做法不知道正不正确,请高手指点。
谢谢!!!

有两个网页,一个是登录的首页,一个是登录后跳转的目标页:
Login.aspx.cs登录页的后台代码

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string sID = Session.SessionID.ToString();//我听说Session是服务器分配自动的,此时的SessionID是那个
Session["sID"] = sID; //自动获取的值吗?????
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string userName = this.TextBox1.Text;
Session["userName"] = userName;
Response.Redirect("Target.aspx");
}


Target.aspx
protected void Page_Load(object sender, EventArgs e)
{
string userName = Session["userName"].ToString();
string sID = Session["sID"].ToString();
Response.Write(string.Format("欢迎{0}登陆,您的SessionID是{1}。", userName, sID));
}
...全文
21654 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangyuantdy 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 aimyray 的回复:]
做单点登录的时候sessionid是有意义的!最近正在做这样的东西!头都大啦!
[/Quote]同大同大啊
aimyray 2010-06-17
  • 打赏
  • 举报
回复
做单点登录的时候sessionid是有意义的!最近正在做这样的东西!头都大啦!
  • 打赏
  • 举报
回复
其实无须写
Session["sID"] = sID; 
胡乱向Session集合中放入一个东西就可以了,例如写
Session["adfas"]=true;


Session集合中的东西会随时丢失的,在生产服务器越是到了繁忙的节日,越是可能每隔10几分钟就丢失一次。如果知道这个,否则只会隐藏麻烦。
  • 打赏
  • 举报
回复
关闭浏览器窗口,这要看所谓浏览器是什么、怎样的浏览器。例如在IE,你按Crl+N键,复制一个新的窗口(同一进程),然后关闭一个窗口,显然进程并没有停止。

但是一旦浏览器进程停止,SessionID肯定也就不会维持了。(除非我们再把它写到硬盘上,可是asp.net并不写)
Jelly_tracy 2010-04-07
  • 打赏
  • 举报
回复
你是要获取session里面的值
leonbingo 2010-04-07
  • 打赏
  • 举报
回复
让我们来看看Session的真实面目

响应头信息查看源代码
Server ASP.NET Development Server/9.0.0.0
Date Wed, 07 Apr 2010 01:23:09 GMT
X-AspNet-Version 2.0.50727
Cache-Control private
Content-Type text/html; charset=utf-8
Content-Length 501
Connection Close
请求头信息查看源代码
Host localhost:4285
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Cookie ASP.NET_SessionId=v5wdrnrdl0l2htnpwvl4ii55

其实就是浏览器记住了服务器响应发过来的一串ID,所以说,关闭浏览器窗口,其实这个id对应的session并未立即过期,只不过是浏览器不记住这个了而已
chenweibobdqndl 2010-04-07
  • 打赏
  • 举报
回复
你写的这个session 根本毫无意义可言 给你举一个例子

Stock stock=StockManager.GetStockById(request.QueryString["id"](这里是从前面那个页面传过来的Id));
session["stocks"]=stock;//这个时候session才有值
  • 打赏
  • 举报
回复
完全正确。只要向session集合中写入东西,SessionID就不再变化了。SessionID可以用来唯一代表会话信息。

实际上,Session集合中的东西随时可能丢失,只有sessionID是不丢失的。
hms88wys 2010-04-06
  • 打赏
  • 举报
回复
取出ID好像没什么意义吧
yhtapmys 2010-04-06
  • 打赏
  • 举报
回复
取他作甚?
meditatorx 2010-04-06
  • 打赏
  • 举报
回复
不知道你的希望拿Session来做什么,是用来保持登录状态还是想统计?
claymore1114 2010-04-06
  • 打赏
  • 举报
回复
sessionid不用再存入session了,可以通过session访问,是由服务器随机生成的24位字符串。

可以用来 统计在线用户啊
zhouzangood 2010-04-06
  • 打赏
  • 举报
回复
看看看看看看
libinlink 2010-04-06
  • 打赏
  • 举报
回复

//不要试图操作SessionID,毫无意义
qingYun1029 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cpp2017 的回复:]
对的,但sessionid似乎没什么意义.
[/Quote]

这儿是没什么意义,我只是想知道我的理解有没有错误!!!
谢谢了啊!!!

对了,大哥,看你级数那么高应该有“一把”年纪了吧,怎么还搞个小鬼头啊!!!
随便说说,没别的意思,不要介意啊!

谢谢了!!!
polarissky 2010-04-06
  • 打赏
  • 举报
回复
木意义
qingYun1029 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ffsinbad 的回复:]
看到忍不住要说一下,把SessionID 放到session 是多余的操作
[/Quote]

你的意思是在garget.aspx取得的sID和上面再Login.aspx中保存起来的是一样的吗????
protected void Page_Load(object sender, EventArgs e)
{
string sID = Session.SessionID.ToString();
}
ffsinbad 2010-04-06
  • 打赏
  • 举报
回复
看到忍不住要说一下,把SessionID 放到session 是多余的操作
ouzui 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cpp2017 的回复:]
对的,但sessionid似乎没什么意义.
[/Quote]
没什么意义?具体讲讲。。。学习
hejun19860620 2010-04-06
  • 打赏
  • 举报
回复
正确的啊!!!
加载更多回复(1)

62,253

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧