gpt4 book ai didi

asp.net-core-mvc - 如何访问 Asp.Net Core MVC 1.0(又名 MVC 6 RC1)中的 session 超时值?

转载 作者:行者123 更新时间:2023-12-02 18:04:37 24 4
gpt4 key购买 nike

在 Asp.Net Core MVC 1.0 (MVC 6 RC1) 中,当在 Startup.cs 的 ConfigureServices 方法中添加 session 支持时,会指定 session 超时时间,如下所示:

services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(30);
options.CookieName = "Session";
});

我的问题是:在应用程序的其他地方如何访问这个IdleTimeout值?

我希望找到它作为 HttpContext.Session 对象的属性,但它似乎不存在。我到处搜索,似乎没有任何记录。想法?

最佳答案

这似乎是 <a href="https://github.com/aspnet/Session/blob/master/src/Microsoft.AspNet.Session/DistributedSession.cs" rel="noreferrer noopener nofollow">DistributedSession</a> 内的私有(private)字段类(class)。所以目前你还无法获取它。 session 似乎缺少旧 HttpSessionState 中的许多属性类,但我找不到任何指出可能原因的内容(可能有一个很好的原因!)。

可以通过反射得到它,但是它非常粗糙。下面的示例使用 this answer .

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

我建议将该值存储在配置文件或 internal class 中某处。

关于asp.net-core-mvc - 如何访问 Asp.Net Core MVC 1.0(又名 MVC 6 RC1)中的 session 超时值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37124749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com