首页
网页制作
网络编程
脚本专栏
数据库
网站运营
网络安全
平面设计
CMS教程
搜索
建站极客
网络编程
ASP.NET
正文
从别人那拷下来的几点Session使用的经验
所属分类:
网络编程
/
ASP.NET
阅读数: 249
收藏 0
赞 0
分享
问:当页面中是否了frameset,发现在每个frame中显示页面的SessionID在第一次请求时都不相同,为什么?
答:原因是你的frameset是放在一个htm页面上而不是ASPX页面。
在一般情况下,如果frameset是aspx页面,当你请求页面时,它首先将请求发送到Web服务器,此时已经获得了SessionID,接着浏览器会分别请求Frame中的其他页面,这样所有页面的SessionID就是一样的,就是FrameSet页面的SessionID。
然而如果你使用Html页面做FrameSet页面,第一个请求将是HTML页面,当该页面从服务器上返回是并没有任何Session产生,接着浏览器会请求Frame里面的页面,这样这些页面都会产生自己的SessionID,所以在这种情况下就会出现这种问题。当你重新刷新页面时,SessionID就会一样,并且是最后一个请求页面的SessionID。
问:是否可以将不同应用程序的Session保存在相同的SQL Server服务器的不同数据库上。
答:可以,请参考:
FIX: Using one SQL database for all applications for SQL Server session state may cause a bottleneck
http://support.microsoft.com/default.aspx?scid=kb;en-us;836680
问:在Session_End是我是否可以获得有效的HttpSessionState和HttpContext对象?
答:你可以在这个方法中获得HttpSessionState对象,可以直接使用Session来访问即可。但是不能获得HttpContext对象,因为该事件并没有和任何请求相关联,因此不存在上下文对象。
问:当我设置EnableSessionState为“ReadOnly”后,但是我在InProc模式下依然可以修改Session的值,这是为什么?
答:即使EnableSessionState标示为ReadOnly,但是在InProc模式下用户依然可以编辑Session。唯一不同的是,在请求过程中Session将不会被锁住。
问:当Session设置成cookieless后会有什么影响?
答:当把cookieless设置成true时,主要会有下面的约束:
1、在页面中不能使用绝对链接
2、在应用程序中在除了Http和Https之间的切换时需要完成一些其他的步骤。
如果发送一个链接给其他人,此时的URL里面将包含Session ID的信息,所以两个人将公用一个Session。
问:为了可以顺序访问Session的状态值,Session是否提供了锁定机制?
答:Session实现了Reader/Writer的锁机制:
当页面对Session具有可写功能(即页面有<%@ Page EnableSessionState="True" %>标记),此时直到请求完成该页面的Session持有一个写锁定。
当页面对Session具有只读功能(即页面有<%@ Page EnableSessionState="ReadOnly" %>标记),此时知道请求完成该页面的Session持有一个读锁定。
读锁定将阻塞一个写锁定;读锁定不会阻塞读锁定;写锁定将阻塞所有的读写锁定。这就是为什么两个框架中的同一个页面都去写同一个Session时,其中一个要等待另一个(稍快的那个)完成后,才开始写。
问:如果使用了cookieless,我该如何从HTTP页面定向到HTTPS?
答:请尝试下面的方法:
String originalUrl = "/fxtest3/sub/foo2.aspx";
String modifiedUrl = "https://localhost" + Response.ApplyAppPathModifier(originalUrl);
Response.Redirect(modifiedUrl);
问:什么类型的对象可以保存在Session里?
答:这依赖使用的Session的模式,当使用的是进程内(InProc)的Session那么可以轻松的保存任何对象。如果你使用了非InProc的模式,则只能保存可以序列化和反序列化的对象,如果此时保存的对象不支持序列化,则不能保存到这种模式(非InProc)的Session里。
问:为什么每次请求的SessionID都不相同?
答:该问题可能是没有在Session里面保存任何信息引起的,即程序中任何地方都没有使用Session。当Session中保存信息之后SessionID将一直和浏览器相关,此时的SessionID将不会在变化。
更多精彩内容
其他人还在看
Asp.net图片上传实现预览效果的简单代码
这篇文章介绍了Asp.net图片上传实现预览效果的简单代码,有需要的朋友可以参考一下
评论 0
收藏 0
赞 0
分享
ASP.NET动态设置页面标题的方法详解
这篇文章介绍了ASP.NET动态设置页面标题的方法详解,有需要的朋友可以参考一下
评论 0
收藏 0
赞 0
分享
ASP.NET中获取URL重写前的原始地址详解
在ASP.NET中,如果你使用了URL重写,通过HttpContext.Request获取到的是重写后的地址。如果这个地址要返回给客户端(比如Redirect),我们一般希望是重写前的友好地址。
评论 0
收藏 0
赞 0
分享
.Net实现合并文件的具体方法
这篇文章介绍了.Net实现合并文件的具体方法,有需要的朋友可以参考一下
评论 0
收藏 0
赞 0
分享
asp.net 初始化文本框的小例子
这篇文章介绍了asp.net 初始化文本框的小例子,有需要的朋友可以参考一下,希望对你有所帮助
评论 0
收藏 0
赞 0
分享
用WPF实现屏幕文字提示的实现方法
本文介绍WPF应用程序实现在屏幕上显示一行或多行文字通知。它没有标题栏和最大化最小化等按钮,可以有半透明背景以使文字的显示更清晰,鼠标点击后提示消失。
评论 0
收藏 0
赞 0
分享
.NET更新Xml中CDATA内容的方法实例
这篇文章介绍了.NET更新Xml中CDATA内容的方法实例,有需要的朋友可以参考一下
评论 0
收藏 0
赞 0
分享
.NET中弹出对话框的方法汇总
下面是本人对常用对话框使用的汇总,希望对大家有所帮助,同时也欢迎大家补充。
评论 0
收藏 0
赞 0
分享
ASP.NET动态生成静态页面的实例代码
生成静态页有很多好处,可以缓解服务器压力、方便搜索网站搜索等等,下面介绍一下生成静态页的实例代码,有需要的朋友可以参考一下
评论 0
收藏 0
赞 0
分享
利用.net控件实现下拉导航菜单制作的具体方法
这篇文章介绍了利用.net控件实现下拉导航菜单制作的具体方法,有需要的朋友可以参考一下,希望对你有所帮助
评论 0
收藏 0
赞 0
分享
查看更多
网络赚钱
更多
90后男屌丝如何让淘宝客日赚10万滴
2021年后通过网络、自媒体赚钱的几种方法
Google AdSense 电汇教程 谷歌联盟国内电汇收款教程(招行)
在校大学生利用网络可以做什么?在校大学生利用网络赚钱方式介绍
Papi酱首次直播的八大平台是哪些 打赏90万服不服
冲刺双十一 如何做好淘宝双11期间的推广及运营
站长故事
更多
传统地摊转型网络营销90后农村小伙子月入过万
奇幻咔咔3D小熊孟得明 揭秘瞬间火爆网络的背后故事
微营销实例之一个80后妈妈的微商之旅
一问易答:为何小米4/魅族MX4不支持NFC?
站长故事之一份月薪1200元的SEO推广工作
如何利用百度贴吧做网络营销