webapi里使用Session

秒了 2016-12-30 12:01:08
我在webapi里面,Action1里面使用session存值取值都没问题, 但是我想在action2里面取 在Action1里面存的session,为什么在action2里面就取不到了?
...全文
3306 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crazydragcool 2017-09-06
  • 打赏
  • 举报
回复
引用 18 楼 Degalo 的回复:
在别的地方看到了这个 ,还没有实验成功 http://www.mamicode.com/info-detail-1061639.html
不要用session,session跨域容易丢失,我现在用cache
Degalo 2017-08-31
  • 打赏
  • 举报
回复
在别的地方看到了这个 ,还没有实验成功 http://www.mamicode.com/info-detail-1061639.html
Degalo 2017-08-31
  • 打赏
  • 举报
回复
引用 15 楼 qq_38804678 的回复:
楼主问题解决了吗,我也有这种情况
我再别的帖子里见到过你的问题,也是你发现的这个问题,我才去测了。。。。没想到你也没解决吗
Degalo 2017-08-31
  • 打赏
  • 举报
回复
我也遇到这个问题,找到了问题所在,但还不知道怎么解决。在调用两个接口时 程序的工作线程不一样,好像是导致session为null的原因,不知哪位道友知道如何解决。 我的场景是登录接口,因为是小白,不知道别的解决方案,所以用session 从而遇到了这个问题
Crazydragcool 2017-06-15
  • 打赏
  • 举报
回复
楼主问题解决了吗,我也有这种情况
qq_38516856 2017-04-26
  • 打赏
  • 举报
回复
必须同事get请求才可以
gis_morningsun 2017-02-07
  • 打赏
  • 举报
回复
请问楼主解决问题了么
秒了 2017-01-09
  • 打赏
  • 举报
回复
引用 11 楼 hanjun0612 的回复:
[quote=引用 10 楼 kanwenlong 的回复:]
测试下来,并没有发现你说的问题。 会不会是你哪里把session给清空了?
public class TestController : ApiController
    {
        [HttpGet]
        public dynamic Get()
        {
            HttpContext.Current.Session["Key"] = "112233";
            return "123";
        }
        [HttpGet]
        public string Post()
        {
            var q = HttpContext.Current.Session["Key"].ToString();
            return q;
        }

    }
[/quote]好蛋疼。。。 看来我还得自己测试解决了。 非常感谢您的耐心解答。
正怒月神 2017-01-05
  • 打赏
  • 举报
回复
引用 10 楼 kanwenlong 的回复:
测试下来,并没有发现你说的问题。 会不会是你哪里把session给清空了?
public class TestController : ApiController
    {
        [HttpGet]
        public dynamic Get()
        {
            HttpContext.Current.Session["Key"] = "112233";
            return "123";
        }
        [HttpGet]
        public string Post()
        {
            var q = HttpContext.Current.Session["Key"].ToString();
            return q;
        }

    }
秒了 2017-01-05
  • 打赏
  • 举报
回复
引用 9 楼 hanjun0612 的回复:
引用 7 楼 kanwenlong 的回复:
[quote=引用 6 楼 hanjun0612 的回复:] 你的 action1和 action2 所在的controller都是继承自 apicontroller吗?
是的。
你的 session 是怎么存取值得? 把action1和action2的代码发出来看一下[/quote]就跟asp.net里面一样, Action1:HttpContext.Current.Session["Key"]=Value Action2:var Value=Httpcontext.Current.Session["Key"]
正怒月神 2017-01-04
  • 打赏
  • 举报
回复
引用 7 楼 kanwenlong 的回复:
引用 6 楼 hanjun0612 的回复:
你的 action1和 action2 所在的controller都是继承自 apicontroller吗?
是的。
你的 session 是怎么存取值得? 把action1和action2的代码发出来看一下
秒了 2017-01-04
  • 打赏
  • 举报
回复
引用 5 楼 Chinajiyong 的回复:
应该不会出现你说的这个问题,是不是你的 HttpContext就是null哦
没有,HttpContext不是空的。
秒了 2017-01-04
  • 打赏
  • 举报
回复
引用 6 楼 hanjun0612 的回复:
你的 action1和 action2 所在的controller都是继承自 apicontroller吗?
是的。
EnForGrass 2016-12-30
  • 打赏
  • 举报
回复
应该不会出现你说的这个问题,是不是你的 HttpContext就是null哦
秒了 2016-12-30
  • 打赏
  • 举报
回复
引用 1 楼 testplusplus 的回复:
webapi默认是不支持session的吧,要通过一些手动配置来开启,可上网百度
引用 2 楼 Chinajiyong 的回复:
在Global.asax里添加:开启Session功能

 public class WebApiApplication : System.Web.HttpApplication
    {
        public override void Init()
        {
            this.PostAuthenticateRequest += (sender, e) => HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
            base.Init();
        }
}
http://blog.csdn.net/kmguo/article/details/23525409 参考http://stackoverflow.com/questions/9594229/accessing-session-using-asp-net-web-api
这个代码我是加上的,我在Action里面也可以用, 比如:我请求Action1 ,在Action1里面存Session和取Session都没问题,但是我再次请求Action2里获取Session的时候就获取不到我在Action1里面存的Session了。 这个怎么破?
秒了 2016-12-30
  • 打赏
  • 举报
回复
引用 1 楼 testplusplus 的回复:
webapi默认是不支持session的吧,要通过一些手动配置来开启,可上网百度
我再action里面是可以用Session的,但是我在另外一个Action里面就取不到Session了。
EnForGrass 2016-12-30
  • 打赏
  • 举报
回复
在Global.asax里添加:开启Session功能

 public class WebApiApplication : System.Web.HttpApplication
    {
        public override void Init()
        {
            this.PostAuthenticateRequest += (sender, e) => HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
            base.Init();
        }
}
http://blog.csdn.net/kmguo/article/details/23525409 参考http://stackoverflow.com/questions/9594229/accessing-session-using-asp-net-web-api
笑容融化坚冰 2016-12-30
  • 打赏
  • 举报
回复
webapi默认是不支持session的吧,要通过一些手动配置来开启,可上网百度
正怒月神 2016-12-30
  • 打赏
  • 举报
回复
你的 action1和 action2 所在的controller都是继承自 apicontroller吗?

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧