前台代码://判断这个项目是不是正在办理中...
         var sessionString=QLflow.viewstate(tmpid).value;
         if(sessionString!="" && sessionString!=null)
         {
             if(sessionString.split(",")[0]==tmpid)
             {
                //alert(sessionString.split(",")[1]+"正在办理");
                window .location.href='WXContract.aspx';
                return false;
            }
         }
         //end......
//每一个项目生成一个session
    //查看状态
    [AjaxPro.AjaxMethod]
    public string viewstate(int tmpid)
    {
        string  sessionString ="";
        if (Session["s"+tmpid+""]!=null)
        {
            sessionString = Session["s" + tmpid + ""].ToString();  
            
        }
        return sessionString;
    }
    //改变状态
    [AjaxPro.AjaxMethod]
    public void changestate(int tmpid,int empid)
    {
        Session["s"+tmpid+""] = "" + tmpid + "," + empid + "";
        Session.Timeout =1;
    }
为什么session在同一浏览器有作用   我用ie的时候是一个样子 用google:chrome是一种样子  就是 ie给sessio赋值了后,chrome 重新访问 session没有效果   反过来也是一样的  设置30分钟也是一样的  谁遇到过同样的问题呢

解决方案 »

  1.   


    神马意思啊  我这样写是不是再服务器呢  远程也能得到这个 session
      

  2.   


    当你打开浏览器的时候你会与服务器建立一个会话,session的作用范围只在这个会话里,再打开一个浏览器就是另一个会话。
      

  3.   

    [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]//读写
    [AjaxMethod(HttpSessionStateRequirement.Read)]//只读HttpContext.Current.Session
      

  4.   

    哦 谢谢了 我现在要做的是   数据库有许多文章 一个用户编辑其中一篇的时候 其他人就不能点击编辑了 这个难道要用application吗?  不是的话 应该怎么做
      

  5.   

    session 在不同浏览器会生成不同的SessionID 在IE下打开已存在的session页面是能找到对应SessionID 与之匹配。
      

  6.   

    可以放在Applicaton里,个人感觉没什么问题
      

  7.   

    谁做过 这类的项目 一个文章 一个用户编辑了  另一个用户就不让编辑了   
    我现在有一种办法 就是给加个状态  当一个用户编辑 让state=1   编辑完成修改成0  
    state=1的时候别人就编辑不成 为0的时候就可以进行编辑
    但是这样子 假如 停电啊 什么的断网 则 需要管理员手动去改回为0另一种办法就是 application  但是这个有没有过期时间呢  我正在google中...有遇到的朋友 讨论下 谢谢了饿
      

  8.   

    哥们 。
    我懂了 。
    其实你是想做个单点登录。
    这样的话 你还是做个cookie然后再加session的好 。
      

  9.   

    再补充上 。或者可以在登录时候记录ip。
    如果是这个ip登录的话获取cookie  cookie效验正确 。 就给session值 。 用户登录。
      

  10.   


    你可以根据会话或session来判断,会话结束或者session失效就可以重置了
      

  11.   


    上边不是讨论过了吗? session是针对每个用户的 不是公共的
      

  12.   

    这样行不通。最好在提交的时候判断。
    1、点击编辑->进入编辑页面,把服务器数据读入客户端(asp:hidden)2、确定修改->读取服务器和客户端存储的数据比较是否一样,一样则允许修改,不一样则相反。
      

  13.   

    你的意思,如果没有编辑,还是可以访问的
    我记得有个formclose事件,(具体是哪个,记不起来了)你可以试试,如果编辑文章的人非正常退出就把标示置1
    你也可以在网上查一下,看怎么处理,web开发,这方面挺难控制的
      

  14.   


    对啊 
    1. 放到application里边会产生大量的垃圾啊 
    我想到个好办法 设置applictaion的时候再设置一个session 
    session过期设置20分钟 
     当session消失的时候 移除当前项目的application  
    这个办法怎么样  
    2.但是放到数据库中又不好控制
      

  15.   

    我也没啥好的方法,以前做web开发,现在做winform开发了,之前只是也有遇到类似的问题
    就是会员登录,一个id只运行登录一个人,就是用数据库处理的,就将就着用了,呵呵