如何避免Owin Federation身份验证的会话过期cookie



我们使用Cookie和WsFederation中间件对ADFS服务器进行身份验证。一切都很好,除了生成cookie总是会话过期。

当用户关闭并重新打开浏览器时,他们需要重新登录。

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType,
            CookieDomain = "...some domain..."
        });
        app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
        {
            MetadataAddress = ConfigurationManager.AppSettings[AdfsMetadataAddress],
            Wtrealm = ConfigurationManager.AppSettings[AppWtRealm],
            UseTokenLifetime = false
        });

为了使cookie在浏览器端持久化,我们需要做些什么?

非常感谢提前~

添加一个CookieAuthenticationProvider,您可以在其中设置到期

    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType,
        CookieDomain = "...some domain...",
        Provider = new CookieAuthenticationProvider
        {
            OnResponseSignIn = context =>
            {
                context.Properties.ExpiresUtc = DateTimeOffset.UtcNow.AddDays(30);
                context.Properties.IsPersistent = true;
            }
        }
    });

最新更新