asp.net core session的使用
阿新 • • 發佈:2018-05-17
code 命名空間 項目執行 ati art ise .get TP 介紹
Session介紹
本文假設讀者已經了解Session的概念和作用,並且在傳統的.net framework平臺上使用過。
Asp.net core 1.0好像需要單獨安裝,在nuget控制臺,選擇你的web項目執行以下命令:
Install-Package Microsoft.AspNetCore.Session
如果需要卸載,在nuget控制臺,選擇具體項目,執行以下命令:
Uninstall-Package Microsoft.AspNetCore.Session
Asp.net core 2.0已經集成了Session組件,無需單獨安裝。
Asp.net core中的session使用方法跟傳統的asp.net不一樣,它內置了兩個方法供我們調用:
void Set(string key, byte[] value); bool TryGetValue(string key, out byte[] value);
這兩個方法的第一個參數都是key,第二個參數都是value,且value是一個byte[]類型的數據。所以在使用的時候,我們還需要做轉換,使用起來很不方便。
針對這一點,session提供了擴展方法,但是需要引用Microsoft.AspNetCore.Http命名空間。然後再使用擴展方法:
public static byte[] Get(this ISession session, string key); public staticint? GetInt32(this ISession session, string key); public static string GetString(this ISession session, string key); public static void SetInt32(this ISession session, string key, int value); public static void SetString(this ISession session, string key, string value);
使用方法如下:
HttpContext.Session.SetString("password", "123456"); var password = HttpContext.Session.GetString("password");
簡單使用
打開Startup.cs文件
1.在ConfigureServices方法裏面添加:
services.AddSession();
2.在Configure方法裏面添加:
app.UseSession();
3.新建控制器SessionController,添加如下代碼:
/// <summary> /// 測試Session /// </summary> /// <returns></returns> public IActionResult Index() { var username = "subendong"; var bytes = System.Text.Encoding.UTF8.GetBytes(username); HttpContext.Session.Set("username", bytes); Byte[] bytesTemp; HttpContext.Session.TryGetValue("username", out bytesTemp); var usernameTemp = System.Text.Encoding.UTF8.GetString(bytesTemp); //擴展方法的使用 HttpContext.Session.SetString("password", "123456"); var password = HttpContext.Session.GetString("password"); var data = new { usernameTemp, password }; return Json(data); }
4.F5運行,輸入地址:http://localhost/session,即可查看正確輸出:
{"usernameTemp":"subendong","password":"123456"}
5.如果第一步和第二步不做的話,直接使用session,會報錯:
InvalidOperationException: Session has not been configured for this application or request
asp.net core session的使用