在Asp.Net中不使用基于Cookie的Session

在传统的Asp中我们知道,如果客户端禁止使用Cookie会导致服务器端Session不可用,因为SessionID是保存在客户端的Cookie里面的。如果客户端禁止使用Cookie,那么SessionID将无处存储。但是在.net中我们可以使用不基于Cookie的Session,为什么不使用Cookie?因为Cookie由于一些安全性方面的问题,有一部分的客户会禁止使用它。那么我们在.net中如何才能使用不基于Cookie的Session呢?

只需要在web.config文件里进行配置一下就可以了

  1. <sessionState cookieless="true" > 

仅仅只需要这样配置就可以了。进行这样的配置,我们将会发现我们的访问的网址变成了http://yourserver/folder/(session ID here)/default.aspx这种形式。服务器端的SessionID写在了浏览器栏里了,这样做会有一定的安全隐患--会话劫持,也就是说别人可以复制这个SessionID,从而以你的身份/会话访问网站。并且,如果我们在页面上写网站内部的超链接的时候,如<a runat="server" href="~/test/page.aspx">Click</a>,这样写,我们跳转之后的页面是以新的会话打开的,我们可以这样写<a runat="server" href=<% =Response.ApplyAppPathModifier("/test/page.aspx")%> >Click</a> ,通过Response的ApplyAppPathModifier方法来加入一个会话ID字符串到超链接里,这个方法采用一个表示 URL 的字符串作为参数,并且返回一个嵌入了会话信息的绝对 URL。并且这个方法可以使用在http链接跳转到https链接的情况下。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值