如何在C# ASP.NET Core中啟用Session?
Session是ASP.NET Core中一項允許我們儲存/儲存使用者資料的特性。
Session將資料儲存在伺服器上的字典中,SessionId用作鍵。SessionId儲存在客戶端的cookie中。SessionId cookie會隨每個請求一起傳送。
SessionId cookie是每個瀏覽器獨有的,不能在瀏覽器之間共享。
SessionId cookie沒有指定超時時間,它們會在瀏覽器會話結束時被刪除。
在伺服器端,session會保留一段時間。伺服器端的預設session超時時間為20分鐘,但可以配置。
**Microsoft.AspNetCore.Session** 包提供了用於管理ASP.NET Core中session的中介軟體。要在我們的應用程式中使用session,我們需要在project.json檔案中新增此包作為依賴項。
下一步是在Startup類中配置session。
我們需要在startup類的ConfigureServices方法中呼叫“AddSession”方法。
“AddSession”方法有一個過載方法,它接受各種session選項,例如空閒超時、Cookie名稱和Cookie域等。
如果我們不傳遞session選項,系統將採用預設選項。
示例
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);
});
}
}如何訪問session
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();
}
}
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP