如何在 ASP.NET Core 中设置 cookie validateInterval?

How to set the cookie validateInterval in ASP.NET Core?

我正在尝试为使用 ASP.NET Identity 3

的 ASP.NET 5 RC1 应用程序设置 validateInterval

我正在尝试实现 答案中的代码。

有很多类似 的代码示例,但它似乎在 ASP.NET 5 RC1

中无效
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    Provider = new CookieAuthenticationProvider
    {
        OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
            validateInterval: TimeSpan.FromMinutes(15))
    },
    ExpireTimeSpan = TimeSpan.FromMinutes(30)
});

如果我尝试在 ASP.NET 5 RC1 中使用上面的代码示例,我不能,因为

Provider 不是 CookieAuthenticationOptions 的 属性 Visual studio 无法通过其灯泡选项在任何名称空间中找到 CookieAuthenticationProvider

如何在 ASP.NET 5 RC1 中设置 validateInterval

验证间隔在 IdentityOptions 中设置:

services.AddIdentity<AppUser, AppRole>(options =>
{
    options.SecurityStampValidationInterval = TimeSpan.FromMinutes(15);
}

您可以使用 CookieAuthenticationEvents 附加到验证事件:

app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
    Events = new CookieAuthenticationEvents()
    {
        OnValidatePrincipal = context =>
        {
            Microsoft.AspNet.Identity.SecurityStampValidator.ValidatePrincipalAsync(context);
            return Task.FromResult(0);
        },
    },
    ExpireTimeSpan = TimeSpan.FromMinutes(30)
});

从 ASP.NET Core 2.0 开始,您将无法在 AddIdentity 时设置 SecurityStampValidationInterval

您将能够通过 SecurityStampValidatorOptions 设置 ValidationInterval

        services.Configure<SecurityStampValidatorOptions>(options =>
        {
            options.ValidationInterval = TimeSpan.FromSeconds(10);
        });

P.S:您必须先 AddIdentity,然后 ConfigureApplicationCookie