關於在webapi中開啓session的步驟及此過程中遇到的問題

開啓:

其實單純的開啓session非常簡單,只要在Global文件中加入下面的內容就可以了:

        public override void Init()
        {
            base.Init();
            PostAuthenticateRequest += MvcApplication_PostAuthenticateRequest;
        }

        private void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e)
        {
            HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
        }

問題:

(1)採用httpwebrequest對webapi進行訪問時,首次對session的調用會失敗,即上一次已經向session中寫入數據了依然會在下一次調用中失敗。失敗過一次之後即可正常調用

解決方法:

在Global文件中加入以下代碼:

        protected void Session_Start(object sender, EventArgs e)
        {
            string sessionId = Session.SessionID;
            //據說可能是因爲當Session_start事件開始執行時,SessionID沒有來得及被創建,所以加上這句來強制創建SessionID
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章