web程序中,Session是一個沒法避開的點。html
最近新開項目,打算從開始搭建一個基礎的架子,後臺用戶登陸成功後,須要保存session。web
新建的asp.net core的模板已經包含了Session的庫,瀏覽器
若是沒有的話,那就須要手動去Nuget搜索一下,安裝就行了cookie
使用的話,也很簡單session
services.AddSession();
而後useapp
app.UseSession();
這樣就能夠在web程序中使用了asp.net
1.存入sessionspa
HttpContext.Session.SetString("userid", "");
2.讀取session.net
HttpContext.Session.GetString("userid")
我在使用的時候,遇到一個問題:登陸成功->寫入Session->重定向->session丟失->再次登陸->寫入Session->登陸成功 code
第一次登錄成功,我重定向到主頁,可是會失敗。session會丟失
因而我分析了一下瀏覽器請求,發現第一次登錄成功後,寫入session,而後重定向,瀏覽器收到302狀態的時候,根本沒有來得及存入session所依賴的cookie,而後就開始跳轉,跳轉過去,session是讀取不到的。
個人處理方法是放一個空白的html頁面,加一段js代碼,用js去跳轉:登錄成功->寫入session->返回html->經過html的jslocation.href從新跳轉到須要跳轉的頁面->獲取session成功