[ASP.NET WebAPI] 如何讓 WebAPI 支援 Session ?

如果你有工作上的需求需要在WebAPI當中加入Session的功能

那麼這一篇也許對你會有幫助。

最近筆者為了案子而開始撰寫.NET WebApi

其中有些資訊需要儲存在Session當中。

於是撰寫了以下的Code想要將資訊寫入Session當中:

var session = System.Web.HttpContext.Current.Session; //宣告Session
session.Add("Auth",LoginInfo.Auth); //將認證資訊放入Session
var temp = session["Auth"];

結果意外發現這段Code居然不能執行。

原因在於session是一個null,也就是說一開始就找不到Session這個物件了

自然也就無法使用。

爬了一些文後發現,WebApi由於是無狀態的,因此無法使用這樣的方式直接儲存

所以需要在檔案:~/Global.asax,內新增以下程式碼即可支援:


protected void Application_PostAuthorizeRequest()
{
	System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}

 

以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教:)

有任何家教、案子 或技術相關問題 請都歡迎聯繫我

http://www.zhenghui.idv.tw/