asp.net-core-mvc – 如何在Asp.Net Core MVC 1.0(又名MVC 6 RC1)中访问Session Timeout值?

前端之家收集整理的这篇文章主要介绍了asp.net-core-mvc – 如何在Asp.Net Core MVC 1.0(又名MVC 6 RC1)中访问Session Timeout值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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对象中找到它作为属性,但它似乎并不存在.我搜索过高低,这似乎没有记录在任何地方.思考?

解决方法

这似乎是 DistributedSession类中的私有字段.所以目前,你无法得到它. Session似乎缺少旧版 HttpSessionState课程中的很多属性,但我找不到任何指向原因的东西(可能有一个好的!).

你可以用反射得到它,但它非常粗糙.以下示例使用this answer.

public IActionResult Index()
{
    var value = GetInstanceField(typeof(DistributedSession),HttpContext.Session,"_idleTimeout");
    return View();
}

我建议将值存储在配置文件或某个内部类中.

猜你在找的.NET Core相关文章