前一段时间在给移动端写接口时遇到一个调用接口发送邮箱
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
这里写图片描述


本文转载:CSDN博客