WebApi和Mvc的Session一直獲取不到問題

風靈使發表於2018-07-10

前一段時間在給移動端寫介面時遇到一個呼叫介面傳送郵箱
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
這裡寫圖片描述

相關文章