1.在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写。 而在ashx中,Session都要使用context.Session,读写方法不变。

2. 在ashx文件中,若要对Session进行成功的读写,应该在使用 Session的class后增加接口IRequiresSessionState (添加 时可能提示添加命名空间 using System.Web.SessionState 的引用),否则 .Sessio context n["xxx"]读出的总是null

那么,在aspx、aspx.cs和ashx中可以使用Session后,我们在 AppCode的cs文件中,如何操作Session或者得到访问者的IP?

首 先, aspx.cs中是直接Request和Session,而在ashx中是context.Request和 context.Session。aspx.cs中可以直接使用,是因为有Web.UI的支持,而ashx中只能靠传进去的HttpContext实例对 Request和Session等进行操作。那么同样的,AppCode中的cs文件中也没有Web.UI,但是没有HttpContext参数,如果 cs中可以得到当前的HttpContext,那么自然而然就可以根据这个HttpContext去操作Request和Session。

HttpContext类中有一个静态属性叫Current,我们可以通过这个属 性去得到当前的HttpContext。当然,在cs中要操作Session,也应该增加IRequiresSessionState 接口。

与Session、 Request、Response、Server等相关的方法和属性,都可以根据这个模式、方法去套用。

比如,在AppCode的cs文件 中要得到当前访问者的IP,可以用HttpContext.Current.Request.UserHostAddress。

在 做一个ajax应用的时候,建立了一个ashx页面,让前端的js来刷该页面。在方法public void ProcessRequest(HttpContext context)中,记录信息的时候,用到了 context.Session.SessionID和 context.Session["UserPtid"]。再测试查看后台数据记录的时候,这两个字段竟然都保存为空,这是为什么呢 ?

其实,只要让你的ashx页面类继承System.Web.SessionState.IReadOnlySessionState 接口即可。该接口是个标记接口,没有任何方法,它只是让目标http处理程序只需对会话状态的值具有读访问权限。详细用法,请参阅msdn。

ashx页面中context.Session[xxx]获取不到值的解决办法相关推荐

  1. asp:CheckBoxList 在服务器端梆定值,在客户端获取不到值的解决办法

    要实现一个添加文章的功能,之前使用的是服务端事件,功能实现了.最新学习了ajax,所以就想用ajax添加.本以为这么小小的功能用不了多少时间,结果却用了我一上午时间....因为获取不到权限复选框选中的 ...

  2. 表单input中disabled提交后得不到值的解决办法

    转载自:http://blog.csdn.net/u014185140/article/details/51985147 input的字段当为diabled时时无法获取数值得,所以最近不要用这个,我们 ...

  3. springboot 主键重复导致数据重复_程序员:MySQL处理插入过程中主键或唯一键重复值的解决办法

    向MySQL插入数据有时会遇到主键重复的场景,原来的做法是先在程序代码中SELECT一下,判断是否存在指定主键或唯一键的数据,如果没有则插入,有的话则执行UPDATE操作,或另外一套逻辑,这种方法是不 ...

  4. MySQL处理插入过程中主键或唯一键重复值的解决办法

    向MySQL插入数据有时会遇到主键重复的场景,原来的做法是先在程序代码中SELECT一下,判断是否存在指定主键或唯一键的数据,如果没有则插入,有的话则执行UPDATE操作,或另外一套逻辑,这种方法是不 ...

  5. js获取php页面session的值,在html页面中取得session中的值的方法

    1.首先呢session的key-value都是存在server的,浏览器HTML页面是没有办法直接取得session中的值,只有在html里能通过js拿到jesessionid之类的东西. 1.1. ...

  6. html js文本框文字列出,js实现文本框中输入文字页面中div层同步获取文本框内容的方法...

    这篇文章主要介绍了js实现文本框中输入文字页面中div层同步获取文本框内容的方法,实例分析了javascript操作dom元素的技巧,需要的朋友可以参考下 本文实例讲述了js实现文本框中输入文字页面中 ...

  7. 在页面上用$(#userName).val();获取不到值,提示$(#userName)未定义

    [size=medium]问题:在页面上用$("#userName").val();获取不到值,提示$("#userName")未定义 原因:[b][color ...

  8. vue v-else中使用document.getElementById获取不到值的问题

    vue v-else中使用document.getElementById获取不到值的问题 这个问题困扰了我两天,我经过反复排查,终于定位到了问题出现在v-if / v-else 判断属性中, 判断1: ...

  9. python中choices_在django中实现choices字段获取对应字段值

    我就废话不多说了,大家还是直接看代码吧~ class Area(models.Model): Area_Level = ( (0, u'全国'), (1, u'省.直辖市'), (2, u'市.直辖市 ...

最新文章

  1. RuntimeError: dimension specified as 0 but tensor has no dimensions
  2. android低功耗蓝牙连接失败_低功耗蓝牙 AoA定位系统为室内定位和资产跟踪 提供亚米级精度位置服务...
  3. ab apr_socket_recv: Connection reset by peer 错误解决
  4. 2013\Province_C_C++_A\4.颠倒的价牌
  5. Mysql中Innodb大量插入数据时SQL语句的优化
  6. pca 矩阵 迹_主成分分析法(PCA)推导
  7. 微信推送封面尺寸_48张微信朋友圈个性封面图片大全 让来看你朋友圈的人眼前一亮!...
  8. kali linux set工具,求助: 社会工程学工具set 出现错误for kali linux.
  9. zabbix数据库历史数据清除
  10. MySQL的SQL预处理(Prepared)
  11. 浅谈vue —— 生命周期
  12. docker中容器与宿主机之间的网络关系
  13. 5分钟搭一个FastDFS--Linux篇
  14. AJAX实现导航式多条件搜索
  15. 离散数学11:图的着色
  16. 伪装苹果android id,小心了,别被伪造的 iOS 系统弹窗骗走 Apple ID
  17. php判断电脑还是手机浏览器打开网页,PHP函数判断电脑端浏览器访问访问还是手机端浏览器访问...
  18. 【基础知识】8、加州房价预测项目精细解释
  19. 系统调优之四大天王——快来瞧瞧~
  20. 斗破苍穹-牛仔版美杜莎

热门文章

  1. php缺失php5.dll,php5.dll丢失怎么办
  2. go string 转 uint64_小改动,大提升:最近 Go 标准库的一次优化
  3. Linux配置协同工作目录,Linux学习二:文件权限与目录配置
  4. java排序为什么会出现多次排序结果不一样_并发理论基础:指令重排序问题
  5. 尝试编辑虚拟磁盘时服务器遇到错误,虚拟磁盘Linux服务端测试及故障处理有哪些呢?...
  6. 【ZooKeeper】配置文件详解
  7. 为什么可以说Java语言是准动态语言?
  8. 使用三层架构实现简单的MVC登陆操作!并实现基本的增删改查功能!!
  9. MATLAB神经网络样本数量太大,MATLAB搭建bp神经网络的误差特别大,但R2的值也大,求解帮我看看我的网络哪里出问题了...
  10. python如何安装panda数据库_python怎么安装pandas