Session是ASP.NET Core中的一個功能,它使我們能夠保存/儲存使用者資料。
Session將資料儲存在伺服器上的字典中,使用SessionId作為鍵。
SessionId 儲存在客戶端的 cookie 中。 SessionId cookie 是透過以下方式發送的 每個請求。SessionId cookie是針對每個瀏覽器的,不能在不同的瀏覽器之間共用。
SessionId cookie沒有指定逾時時間,瀏覽器關閉時會被刪除 瀏覽器會話結束。
在伺服器端,會話會保留有限的時間。預設會話超時時間為 伺服器是20分鐘,但是可以進行設定。
Microsoft.AspNetCore.Session套件提供了在ASP.NET Core中管理會話的中間件。要在我們的應用程式中使用會話,我們需要將此套件新增為專案的依賴項在project.json檔案中。
下一步是在Startup類別中設定會話。
我們需要在startup類別的ConfigureServices方法中呼叫「AddSession」方法。
「AddSession」方法有一個重載方法,可以接受各種會話參數
選項,如空閒逾時、Cookie名稱和Cookie域等。
如果我們不傳遞會話選項,系統將採用預設選項。
public class Startup { public void Configure(IApplicationBuilder app){ app.UseSession(); app.UseMvc(); app.Run(context => { return context.Response.WriteAsync("Hello World!"); }); } public void ConfigureServices(IServiceCollection services){ services.AddMvc(); services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(60); }); } }
如何存取會話
public class HomeController : Controller{ [Route("home/index")] public IActionResult Index(){ HttpContext.Session.SetString("product","laptop"); return View(); } [Route("home/GetSessionData")] public IActionResult GetSessionData(){ ViewBag.data = HttpContext.Session.GetString("product");; return View(); } }
以上是如何在 C# ASP.NET Core 中啟用會話?的詳細內容。更多資訊請關注PHP中文網其他相關文章!