Gavin
Gavin

Reputation: 11

How to avoid session expired cookie for Owin Federation authentication?

We are using Cookie and WsFederation middleware to authenticate against ADFS server. Everything is working fine except the generate cookie is always session expired.

When user close and reopen browser, they need to relogin.

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType,
            CookieDomain = "...some domain..."
        });

        app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
        {
            MetadataAddress = ConfigurationManager.AppSettings[AdfsMetadataAddress],
            Wtrealm = ConfigurationManager.AppSettings[AppWtRealm],
            UseTokenLifetime = false
        });

What are the things that we need to do in order to make cookie persisted in browser side?

Thanks very much in advance~

Upvotes: 1

Views: 802

Answers (1)

Ger Groot
Ger Groot

Reputation: 1101

Add a CookieAuthenticationProvider where you can set the expiration

    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;
            }
        }
    });

Upvotes: 1

Related Questions