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中文网其他相关文章!