zoukankan      html  css  js  c++  java
  • ASHX中获取session值(非分布式Session)

      上礼拜刚传了一次,这周再传就有点忘记了,修修改改运行了好几次,开的博客终于派上用处了,就用这个来开个篇吧,希望以后越来越好,问题越来越精辟高端,哈哈。

      在ashx中使用session个时,必须使用context.Session["ID"],直接是session无法传值;其次,要添加引用:using System.Web.SessionState;

    最后,要继承接口:public class ASHX页面名称 : IHttpHandler, IRequiresSessionState ,即可成功传值。

      既然写了ASHX,顺便把前后台的传值也一起记录一下,这个是抱了一天大腿才搞定的,当初没好好学JS,现在被自己坑啊……

    ------------------------------16.11.4更新------------------------------ 

    今天又要用到ashx传参时,发现要传两个参数,故再记录一下有两个参数的方法。

    前台:

    //传递单个参数

    <script src="../JS/jquery-1.9.1.js" type="text/javascript"></script> <script type="text/javascript" src="../JS/base64.js"></script> <script type="text/javascript" src="../JS/jquery.min.js"></script> <script type="text/javascript"> var b = new Base64(); var Urlcs = b.decode(window.location.search); //获取解码后的URL参数值 var array; $.ajax({ type: "POST", dataType: "Text", url: "../Urltext.ashx", //自定义的ASHX页面名称(注意路径是否正确,当初因为这个路径我折腾了好久,后来才发现是路径不对导致无法传值) data: { Message: Urlcs }, //传值到后台 success: function (optname) { document.getElementById('Label1').innerHTML = optname;} //后台传过来的值,并显示在Label1中 } }); </script>
    //传递两个参数,改动部分从“success:function(data)”开始
    
    <script src="../JS/jquery-1.9.1.js" type="text/javascript"></script>
    <script type="text/javascript" src="../JS/base64.js"></script> 
    <script type="text/javascript" src="../JS/jquery.min.js"></script>
    <script type="text/javascript"> 
    var b = new Base64();
    var Urlcs = b.decode(window.location.search);  //获取解码后的URL参数值
    
    var array;
    $.ajax({
    type: "POST",
    dataType: "Text",
    url: "../Urltext.ashx",    //自定义的ASHX页面名称(注意路径是否正确,当初因为这个路径我折腾了好久,后来才发现是路径不对导致无法传值)
    data: { Message: Urlcs },   //传值到后台
    
    success:function(data){
    
    array=data.split("|");
    
    document.getElementById('Label').innerHTML=array[0];  //这个就是optname
    
    document.getElementById('Label2').innerHTML=array[1]; //这个就是usercode
    
    }
    
    }); 
    </script>

    后台(ashx页面):

    using System;
    using System.Web;
    using System.Web.SessionState;    //注意要添加引用
    
    public class Urltext : IHttpHandler, IRequiresSessionState {   //此处注意要继承接口
    
    public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "text/plain";
    
    //前台传到后台获取参数
    string urlmsg = context.Request["Message"];   //获取到前台传回的Message的参数
     
    //后台传给前台的参数
    string optname = "测试前后台值传递";

    string usercode="需要传递的账号"; //新增参数 context.Response.Write(optname+"|"+usercode);//传递两个参数
    context.Response.Write(optname);  //将optname的值传到前台(传递一个参数)
    // 用session记录ID从而方便在其他页面获取,这个只是一个简单的session值传递  
    context.Session[
    "id"] = usercode;
    //我之前没有考虑过多个服务器的情况,若有分布式Session值传递,请上三楼传送门

    }
    }
  • 相关阅读:
    Basic INFO InstallShield的版本区分
    月光博客 从软件保护到软件授权
    Basic INFO InstallShield Professional for AdminStudio版本中如何打开InstallScript工程类型
    Basic INFO InstallScript脚本编程的限制
    从软件加密到软件授权保护
    月光博客 再谈软件保护中软加密和硬加密的安全强度
    INFO:Visual Studio 11 Beta版本中去除对Visual Studio Installer的支持,只保留InstallShield LE版本
    android 抓包分析
    android 巧用 dimerns 分辨率
    android 抓包 2
  • 原文地址:https://www.cnblogs.com/Syt52Blog/p/5828660.html
Copyright © 2011-2022 走看看