Asp.net core mvc 如何在Asp.Net核心MVC1.0(又名MVC6RC1)中访问会话超时值?
在Asp.Net Core MVC 1.0(MVC 6 RC1)中,当在Startup.cs的Asp.net core mvc 如何在Asp.Net核心MVC1.0(又名MVC6RC1)中访问会话超时值?,asp.net-core-mvc,Asp.net Core Mvc,在Asp.Net Core MVC 1.0(MVC 6 RC1)中,当在Startup.cs的ConfigureServices方法中添加会话支持时,会指定会话超时时间,如下所示: services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(30); options.CookieName = "Session"; });
ConfigureServices
方法中添加会话支持时,会指定会话超时时间,如下所示:
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(30);
options.CookieName = "Session";
});
我的问题是:在应用程序的其他地方,如何访问这个IdleTimeout
值
我希望找到它作为HttpContext.Session对象的属性,但它似乎不在那里。我到处都找过,但这似乎在任何地方都没有记录。想法?这似乎是
类内部的一个私有字段。所以现在,你无法得到它。会话似乎缺少旧类中的许多属性,但我找不到任何指向原因的东西(可能有一个很好的原因!)
你可以通过反射得到它,但它相当粗糙。下面的示例使用
我建议将值存储在配置文件或
内部类的某个位置。+1建议将值存储在其他位置并使用它设置选项。IdleTimeout
。这不是我想要解决问题的方法,但是如果它是反映私有成员var的唯一替代方法,那么它将是两种破解中最好的一种。
public IActionResult Index()
{
var value = GetInstanceField(typeof(DistributedSession), HttpContext.Session, "_idleTimeout");
return View();
}