簡體   English   中英

Asp.Net core 6 會話密鑰

[英]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(); 能夠使用會話。

https://youtu.be/e7UBAe0-KY8

我發現這個關於 Net6 會話的非常有用的視頻,我認為它會幫助你和其他任何人解決這個問題,我有自己

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM