在 .NET Core 1.0 中复制您想要做的事情将非常困难。和事件不存在(也没有计划介绍它们),您只能尝试用一些技巧“复制”它们SessionStart
。正如这篇极其清晰的文章中SessionEnd
明确指出的那样,
由于 ASP.NET Core 1.0 背后的驱动力之一是“云就绪”,因此会话管理设计的重点一直是使其在分布式场景中工作。Session_End 仅在会话使用 inproc 模式(本地服务器内存)并且团队声明他们不会添加仅在本地工作的功能时才会触发。
顺便说一句,关于会话使用的简短回答:
设置
将以下条目添加到project.json
文件的依赖项节点
"Microsoft.AspNet.Session": "1.0.0-rc1-final"
修改您的 ConfigureServices 以激活 Session:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddSession(options => {
options.IdleTimeout = TimeSpan.FromMinutes(30);
options.CookieName = ".MyApplication";
});
}
然后你可以像这样激活它:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseSession();
//removed for brevity
}
用法
HttpContext.Session.SetString("Name, "Foo");
HttpContext.Session.SetInt32("Age", 35);
或者
var name = HttpContext.Session.GetString("Name");
var age = HttpContext.Session.GetInt32("Age");