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

本文实例讲述了*.ashx文件不能访问Session值的解决方法。分享给大家供大家参考之用。具体方法如下:

实例代码如下:

<%@ WebHandler Language="C#" Class="productHandler" %>
using System;
using System.Web;
using JBTCard.Entity.CompanyEntity;
using JBTCard.Business.CompanyBS;
using System.Collections.Generic;
using Newtonsoft.Json;
using System.Web.SessionState; 

public class productHandler : IHttpHandler, IRequiresSessionState, IReadOnlySessionState{ 

  public void ProcessRequest (HttpContext context) {
  string moduleId = context.Request.Form["moduleId"].ToString();
  string message = "";
  switch (moduleId)
  {
  case "getPTypeList":
  IList<ProductTypeIdNameEntity> list = ProductTypeBS.GetPTypeListIdName();
  message = JavaScriptConvert.SerializeObject(list);
  break;
  case "getCompanyById":
int cid = Convert.ToInt32(context.Session["cid"]);  CompanyEntity company = CompanyBS.GetCompanyEntyById(1);
  message = JavaScriptConvert.SerializeObject(company);
  break;
  case "insert":
  string condis = context.Request.Form["condi"].ToString();
  ProductEntity model = (ProductEntity)JavaScriptConvert.DeserializeObject(condis, typeof(ProductEntity)); 

  bool b = ProductBS.AddProduct(model);
  if (b)
  {
  message = "{success:true}";
  }
  else
  {
  throw new Exception("商品添加失败!");
  }
break;
  }
  context.Response.ContentType = "text/javascript";
  context.Response.Write(message);
  } 

  public bool IsReusable {
    get {
      return false;
    }
  }
}

其实只要加上这句就好了:

using System.Web.SessionState;

希望本文所述对大家的asp.net程序设计有所帮助

(0)

相关推荐

  • 后缀为 ashx 与 axd 的文件区别浅析

    唯一不同的地方是:axd扩展名的必须要在web.config中的<httpHandlers>中进行注册,而ashx直接在项目中当成aspx那样添加使用即可.所以在项目的添加文件中,向导只有添加ashx文件的模板,而没有添加axd文件的模板.那微软为什么这么无聊搞两个后缀,全部使用ashx不就行了么?干脆利落.原来,如果你的web handler代码不在Web的项目中的话,那你就不能使用ashx了,因为如果不在web.config中注册的话,系统根本不知道要在那个dll库中才能找到相应的代码.如

  • 在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

  • ashx文件的使用小结

    一提到Ashx文件,我们就会想到http handler以及图片加载(在之前我们一般使用ASPX或者Webservice去做),一般做法如下: Handler.ashx: 复制代码 代码如下: <%@ WebHandler Language="C#" Class="Handler" %>using System;using System.IO;using System.Web;public class Handler : IHttpHandler { p

  • 基于.NET中:自动将请求参数绑定到ASPX、ASHX和MVC的方法(菜鸟必看)

    前言 刚开始做AJAX应用的时候,经常要手工解析客户端传递的参数,这个过程极其无聊,而且代码中充斥着:Request["xxx"]之类的代码. 这篇文章的目的就是告诉初学者如何自动将客户端用AJAX发送的参数自动绑定为强类型的成员属性或方法参数. 自动绑定到ASPX和ASHX 框架支持 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; usin

  • 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对象为空.

  • 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

  • aspx与ascx,ashx的用法总结

    做asp.net开发的对.aspx,.ascx和.ashx都不会陌生.关于它们,网上有很多文章介绍."纸上得来终觉浅,绝知此事要躬行",下面自己总结一下做个笔记. 1..aspxWeb窗体设计页面.Web窗体页由两部分组成:视觉元素(html.服务器控件和静态文本)和该页的编程逻辑(VS中的设计视图和代码视图可分别看到它们对应得文件).VS将这两个组成部分分别存储在一个单独的文件中.视觉元素在.aspx 文件中创建. 2..ascxasp.net的用户控件,是作为一种封装了特定功能和行

  • ashx中使用session的方法(获取session值)

    WEB开发,在一般处理程序中,很容易得到 Request和Response对象,如: 复制代码 代码如下: HttpRequest _request = context.Request; HttpResponse _response = context.Response; 但是要得到 Session的值就没有那么简单了. 比如如果要在ashx得到保存在Session中的登录用户信息 Session["LoginUser"] 如果仅仅使用 context.Session["Lo

  • ashx介绍以及ashx文件与aspx文件之间的区别

    ashx是什么文件? .ashx 文件用于写web handler的..ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程.其实就是带HTML和C#的混合文件. .ashx文件适合产生供浏览器处理的.不需要回发处理的数据格式,例如用于生成动态图片.动态文本等内容. ashx文件是.net 2.0新加的文件类型(其实在.net 1.0下已经可用,但是没有公开提供). ashx文件和aspx文件有什么不同? 我们先新建一

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

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

  • jquery向.ashx文件post中文乱码问题的解决方法

    1.我的环境:vs2005,未装SP1补丁,不能创建Web应用程序,只能创建网站:jquery版本1.5.1 2.web.config中的相关配置 <globalization requestEncoding="gb2312" responseEncoding="gb2312"/> 3.jquery的Post数据的写法 复制代码 代码如下: $(document).ready(function (){ $("#btnSend").cl

  • php验证session无效的解决方法

    本文实例讲述了php验证session无效的解决方法.分享给大家供大家参考.具体方法如下: 一.问题 今天在配置 apache+php环境时折腾了很久很久,后来成功了但发现验证码图片可以生成,在登录验证时发现session为空,并没有值了. 二.解决方法 环境:apache+php 程序代码如下: 复制代码 代码如下: <input name="username" type="text" class="input" id="use

  • 微信小程序实现Session功能及无法获取session问题的解决方法

    因为小程序原生不支持Cookie,因此也不支持Session. 网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码. 大概思路就是借助小程序本地储存+网络请求的header可读可写来实现类似浏览器的cookies保存session功能. 直接上代码 function NetRequest({url, data, success, fail, complete, method = "POST", header = { 'Content-type':

  • docker django无法访问redis容器的解决方法

    docker-compose.yal文件中: redis: image: redis container_name: xdemo.redis ports: - 6379:6379 restart: always django setting.py中配置redis: CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379', "OPTIONS&qu

  • tomcat正常启动但网页却无法访问的几种解决方法

    目录 问题1: jdk的版本冲突 一.先检查本机的jdk版本 二.修改jdk版本 三.重新启动tomcat 问题2: 端口冲突 tomcat版本和jdk版本对应关系 最近使用tomcat遇到一点小问题,项目使用tomcat,启动后显示无法访问页面.根据自身使用情况和一些网上搜索到的结果,汇总整理一下. 可能遇到的问题有以下几种: 问题1: jdk的版本冲突 使用的tomcat1.6版本,电脑安装的jdk版本是 1.8,jdk版本冲突导致无法正常使用.解决方案:修改jdk的版本,由jdk1.8修改

  • HTTP 错误 403.1 - 禁止访问:执行访问被拒绝。 解决方法该页无法显示

    HTTP 错误 403.1 - 禁止访问:执行访问被拒绝. 解决方法该页无法显示您试图从目录中执行 CGI.ISAPI 或其他可执行程序,但该目录不允许执行程序.-------------------------------------------------------------------------------- 请尝试以下操作: 如果您认为该目录应该允许执行访问权限,请与网站管理员联系.HTTP 错误 403.1 - 禁止访问:执行访问被拒绝.Internet 信息服务 (IIS) -

  • javascript使用for循环批量注册的事件不能正确获取索引值的解决方法

    本文实例讲述了javascript使用for循环批量注册的事件不能正确获取索引值的解决方法.分享给大家供大家参考.具体分析如下: 可能不少朋友会遇到一个问题,那就是当使用for循环批量注册事件处理函数,然后最后通过事件处理函数获取当前元素的索引值的时候会失败,先看一段代码实例: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name=&q

  • JavaScript中无法通过div.style.left获取值的解决方法

    一.问题总结: 样式必须直接写在元素内部才能通过div.style.left直接获取属性值(也就是必须是内联样式才行),定义在css中的样式不能通过这种方式获取. 让元素移动到200停止 setTimeout ( function () { var div = document.getElementById("div4"); //var left = parseInt(div.style.left) + 5; var left = div.offsetLeft + 5; div.sty

  • MySQL 处理插入过程中的主键唯一键重复值的解决方法

    本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE:接下来就分别看看这三种方式的处理办法. IGNORE 使用ignore当插入的值遇到主键(PRIMARY KEY)或者唯一键(UNIQUE KEY)重复时自动忽略重复的记录行,不影响后面的记录行的插入, 创建测试表 CREATE TABLE Tignore (ID INT NOT NULL PRIMARY KEY , NAME1 INT )d

随机推荐