前一段时间在给移动端写接口时遇到一个调用接口发送邮箱
session一直获取不到的问题。
大家都知道Webapi
默认是不开启Session
会话支持的。所以需要Global
文件中要重写方法如下:
public override void Init()
{
this.PostAuthenticateRequest += (sender, e) => HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
base.Init();
}
现在就可以在你创建的Api
控制器里面进行存储Session
了
HttpContext.Current.Session["a"]="1111";
然而当你邮箱发送出去后。你打开邮箱页面进行验证的时候 发现获取的Session
是null,这里我要说明一下
进行验证的时候请大家通过js的异步进行处理。去到你设置Session
的控制器里面写一个接口方法,进行ajax调用,在相对应的控制器里面获取Session
就可以了。
注意
MVC
在控制器里又封装个Session
,而不是System.Web.HttpContext.Current的session
,同一控制器之间可以共享,不同控制器之间不共享的,想要所有的地方都可以获取session的值,需要使用System.Web.HttpContext.Current的session
。