Asp.net在ashx文件中处理Session问题解决方法

今天做一个vb.net的登录实例,前台使用Ext中Ajax ,后台用ashx文件处理登录过程,并将用户储存在Session中总是出现在这个错误.  [NullReferenceException: 未将对象引用设置到对象的实例。]

从网上查了一下有以下几种原因:

1、ViewState 对象为Unll。

2、DateSet 空。

3、sql语句或Datebase的原因导致DataReader空。

4、声明字符串变量时未赋空值就应用变量。

5、未用new初始化对象。

6、Session对象为空。

开始以为是 Session对象为空的原因:将代码修改以下

if context.Session.isNewSession then

context.Session("UserName")=username 'username为接受的用户名

.................

这样修改了以后,晕!!!!!,还是相同的错误.再Google吧

输入:ashx 处理 session   中于搜到了,太不容易,看来搜索也需要很多技巧

原来:在 ashx 中要使用Session ,需要继承System.Web.SessionState.IRequiresSessionState接口.默认的之继承了IHttpHandler接口

OK    直接看源代码吧


代码如下:

<%@ WebHandler Language="VB" Class="logout" %>

Imports System

Imports System.Web

Imports System.Web.SessionState

Public Class logout : Implements IHttpHandler, IRequiresSessionState

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

context.Session.Clear()

context.Response.Write("{'success':'true'}") 'JSON格式数据

End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable

Get

Return False

End Get

End Property

End Class

(0)

相关推荐

  • ASP.NET 程序中删除文件夹导致session失效问题的解决办法分享

    在Global中  Application_Start 添加 如: 复制代码 代码如下: void Application_Start(object sender, EventArgs e)    {        //在应用程序启动时运行的代码        System.Reflection.PropertyInfo p = typeof(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", System.Reflect

  • 详解.net mvc session失效问题

    最近在研究有关.net mvc项目中的session失效问题,下面小编把研究过程给大家共享下,大家可以参考下. 最近解决基于.net mvc项目的session失效问题,这个跟大家聊聊. 1.问题分析 .net mvc中,Session失效需要考虑几种情况: •基于权限认证的Action,使用非Ajax请求: •基于权限认证的Action,使用JQueryt Ajax请求: •基于权限认证的Action,使用.net mvc封装的Ajax请求: •无权限认证的Action,使用非Aajx请求:

  • ASP.NET将Session保存到数据库中的方法

    几个方式(本文不作介绍),要将Session保存到SQL Server中,需要有以下几个步骤: 1.首先要创建用于保存Session数据的数据库,以命令行的形式用aspnet_regsql.exe来完成,具体命令为 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe -ssadd -sstype c -d sd -E 该命令是以windows验证方式,添加了sd数据库保存session数据. 2.需要修改ASP.NET

  • ASP.NET ASHX中获得Session的方法

    1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法是这样的: context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString() 2-在ash

  • ASP.NET中在一般处理程序中使用session的简单介绍

    复制代码 代码如下: <%@ WebHandler Language="C#" Class="ChangePwd" %> using System; using System.Web; using System.Web.SessionState; public class ChangePwd : IHttpHandler, IReadOnlySessionState { public void ProcessRequest (HttpContext co

  • ASP.NET 使用application与session对象写的简单聊天室程序

    ASP.Net中有两个重要的对象,一个是application对象,一个是session对象. Application:记录应用程序参数的对象,该对象用于共享应用程序级信息. Session:记录浏览器端的变量对象,用来存储跨网页程序程序的变量或者对象. 说实话,写了快一年的asp.net,application对象还真没怎么用过.看了看书,根据这两个对象的特性写了一个简单的聊天室程序.真的是非常的简陋. 我的思路是,有两个页面Default页和ChatRoom页,页面布局如图: Default

  • ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法

    今天发现在IE10中登录我公司的一个网站时,点击其它菜单,页面总会自动重新退出到登录页,后检查发现,IE10送出的HTTP头,和.AUTH Cookie都没问题,但使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失. 后查实这是ASP.NET 2.0,3.5和4.0的Bugs,因这些版本无法识别IE10的User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功

  • asp.net session的使用与过期实例代码

    1.Session是一种Web会话中的常用状态之一. 2.Session提供了一种把信息保存在服务器内存中的方式.他能储存任何数据类型,包含自定义对象. 3.每个客户端的Seesion是独立存储的. 4.在整个会话过程中,只要SessionID的cookie不丢失,都会保存Session信息的. 5.Session不能跨进程访问,只能由该会话的用户访问.应为提取Session数据的id标识是以Cookie的方式保存到访问者浏览器的缓存里的. 6.当会话终止,或过期时,服务器就清除Session对

  • .net中的session与cookies区别及使用方法

    先介绍一下比较简单的使用方法: 给COOKIES赋值 复制代码 代码如下: Response.Cookies["uid"].Value = "20"; Response.Cookies["LoginCode"].Value = "58469"; 以上就是分别对两个COOKIES变量赋了两个不同的传,那么在使用COOKIES时,我们怎样来控制COOKIES的有效期呢,看下面:  复制代码 代码如下: Response.Cooki

  • Asp.net在ashx文件中处理Session问题解决方法

    今天做一个vb.net的登录实例,前台使用Ext中Ajax ,后台用ashx文件处理登录过程,并将用户储存在Session中总是出现在这个错误.  [NullReferenceException: 未将对象引用设置到对象的实例.] 从网上查了一下有以下几种原因: 1.ViewState 对象为Unll. 2.DateSet 空. 3.sql语句或Datebase的原因导致DataReader空. 4.声明字符串变量时未赋空值就应用变量. 5.未用new初始化对象. 6.Session对象为空.

  • 在ashx文件中使用session的解决思路

    如果你要保证数据的安全性,你可以在ashx中使用session验证.如:你的index.aspx中使用jquery回调ashx数据,那么在index.aspx page_load时session["checked"]="true",在ashx中验证session是否存在. 但ashx中要获取session内容还需如下几步:①导入命名空间 复制代码 代码如下: using System; using System.Web; using System.Web.Sessi

  • web.py在SAE中的Session问题解决方法(使用mysql存储)

    这段时间一直想尝试着在SAE中使用Python,初步选择了Web.py框架做为开发框架,但是可怜SAE上的资料少的可怜,有点问题基本上解决不了,今天解决一个Session在Session的存储问题,在SAE中不能直接用本地文件存储,好像是权限的原因,我现在采用的是保存在mysql中,效果也不错.希望对大家有帮助.直接上代码了. index.wsgi #!/usr/bin/env python # coding: utf-8 import os import web import sae from

  • *.ashx文件不能访问Session值的解决方法

    本文实例讲述了*.ashx文件不能访问Session值的解决方法.分享给大家供大家参考之用.具体方法如下: 实例代码如下: <%@ WebHandler Language="C#" Class="productHandler" %> using System; using System.Web; using JBTCard.Entity.CompanyEntity; using JBTCard.Business.CompanyBS; using Syst

  • Linux 删除和替换文件中某一行的方法【推荐】

    如果有一个abc.txt文件,内容是: aaa bbb BATBUSINESSTYPE, INSIDEID--) ONLINE; INSIDEID--) ONLINE ccc ddd eee fff 如果要删除ddd,那么脚本可以这样写: sed -i '/ddd/d' abc.txt 如果删除的是一个变量的值,假如变量是var,应该写成: sed -i '/'"$var"'/d' abc.txt 至于grep -v aaa abc.txt这个方法,是无法将修改的结果写入abc.txt

  • shell去掉文件中空行(空白行)的方法详解

    本文详细介绍了使用shell去除文件中的空行的方法,学习下sed.awk.shell文件检测的方法,有需要的朋友可以作个参考. 本节内容:shell去掉文件中空行 1,shell 去掉文件中的空行 复制代码 代码如下: cat filename | sed -e '/^$/d' > filename 2,保留最新的9个文件,其它的文件删除的命令语句 复制代码 代码如下: ls -t | awk '{if(NR>9){print $0}}' |xargs rm -f 附,shell中的特殊变量

  • Python3实现将文件归档到zip文件及从zip文件中读取数据的方法

    本文实例讲述了Python3实现将文件归档到zip文件及从zip文件中读取数据的方法.分享给大家供大家参考.具体实现方法如下: ''''' Created on Dec 24, 2012 将文件归档到zip文件,并从zip文件中读取数据 @author: liury_lab ''' # 压缩成zip文件 from zipfile import * #@UnusedWildImport import os my_dir = 'd:/中华十大名帖/' myzip = ZipFile('d:/中华十大

  • php file_get_contents取文件中数组元素的方法

    用file_get_contents()抓取了 这个网址上的内容 http://simonfenci.sinaapp.com/index.php?key=simon&wd=1314abc 看似好像反回的是数组..但是我不管怎么用foreach循环都报错.. 我只想把数组中的word里面的值 取出来. 方法如下:正解(其他的字段一样,把word替换即可) $s=file_get_contents('http://simonfenci.sinaapp.com/index.php?key=simon&a

  • Java将对象保存到文件中/从文件中读取对象的方法

    1.保存对象到文件中 Java语言只能将实现了Serializable接口的类的对象保存到文件中,利用如下方法即可: public static void writeObjectToFile(Object obj) { File file =new File("test.dat"); FileOutputStream out; try { out = new FileOutputStream(file); ObjectOutputStream objOut=new ObjectOutp

  • 从Java的jar文件中读取数据的方法

    本文实例讲述了从Java的jar文件中读取数据的方法.分享给大家供大家参考.具体如下: Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR 文件格式支持压缩.身份验证和版本,以及许多其它特性. 从 JAR 文件中得到它所包含的文件内容是件棘手的事情,但也不是不可以做到.这篇技巧就将告诉你如何从 JAR 文件中取得一个文件.我们会先取得这个 JAR

随机推荐