[英]Asp.Net core 6 session keys
我讓我的項目在 .NET 框架 4.8 上運行,然后將其遷移到 .NET 6。每當我需要從 Session 訪問特定屬性時,我都會使用:
public static bool SIMInside
{
get
{
return (bool)HttpContext.Current.Session["SIMInside"];
}
set
{
HttpContext.Current.Session["SIMInside"] = value;
}
}
如何在 Asp.Net core 6 中實現這一點? 我知道我需要添加builder.Services.AddHttpContextAccessor();
在Program.cs
中,然后注入到所需的位置。 我試過但無濟於事:
public static bool SIMInside
{
get
{
return _contextAccessor.HttpContext.Session.Get("SIMInside");
}
set
{
_contextAccessor.HttpContext.Session.Set("SIMInside", value);
}
}
在這種情況下,這里Get
返回byte[]
數組或Set
也需要byte[]
數組
與經典 ASP.NET 應用程序相比,ASP.NET Core 使用會話的方式不同。
不幸的是,您不能再在其中存儲復雜的對象。 為了存儲對象,它被轉換為 JSON 並存儲為字符串。 稍后,將其作為字符串檢索並反序列化為原始對象。
在您的情況下,您可以使用SetInt32 and GetInt32
存儲和檢索 1 為真,0 為假,然后解析該值。
Convert.ToBoolean(session.GetInt32(“SIMInside”));
session.SetInt32(“SIMInside”, Convert.ToInt32(value));
不要忘記啟用app.UseSession();
能夠使用會話。
我發現這個關於 Net6 會話的非常有用的視頻,我認為它會幫助你和其他任何人解決這個問題,我有自己
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.