Asp.net core mvc 如何在Asp.Net核心MVC1.0(又名MVC6RC1)中访问会话超时值?

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"; });

在Asp.Net Core MVC 1.0(MVC 6 RC1)中,当在Startup.cs的
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();
}