即使在活动时,Mvc Core会话超时

时间:2017-01-15 12:47:04

标签: asp.net-core-mvc identity session-timeout

我有一个MVC Core应用程序,即使用户处于活动状态,也会使用户超时。即使我点击链接并加载页面,会话也会超时。

我在Startup.cs的ConfigureServices函数中有一行:

        services.Configure<IdentityOptions>(options => 
        {
            options.SecurityStampValidationInterval = TimeSpan.FromSeconds(30);
        });

为了进行测试,此行将超时时间减少到30秒,并且确实具有该效果。

在我的MVC应用程序中,所有用户都已登录。如果用户未登录,则基本控制器类OnActionExecuting功能中的函数将使用访客帐户登录用户,如下所示:

public override void OnActionExecuting(ActionExecutingContext context)
{

        // Ioc
        this._signInManager = this.HttpContext.RequestServices.GetService(typeof(SignInManager<ApplicationUser>)) as SignInManager<ApplicationUser>;

        // Get session-state
        _sessionState = _ensureUserSignedIn();

        // Call base-class functon
        base.OnActionExecuting(context);

}

登录电话是:

// Sign-in
var result = this._signInManager.PasswordSignInAsync(acc.Username, Program.GuestPassword, true, lockoutOnFailure: false).WaitAndSpit();

会话状态是我自己的类,我存储在RedisCache中。我用这个值查找会话状态:

this.User.Identity.Name

在web.config中没有session-state或forms-authentication的部分。

0 个答案:

没有答案