SlidingExpiration с использованием режима аутентификации = "Нет"? - PullRequest
0 голосов
/ 04 февраля 2019

Я работаю с сеансом приложения ASP.NET MVC, пытаясь реализовать аутентификацию ADFS с OWIN, используя "UseCookieAuthentication" и "UseWsFederationAuthentication".

Аутентификация ADFS работает только при установке режим аутентификации = "Нет" в файле web.config

Проблема заключается в том, что когда я устанавливаю режим аутентификации = " Нет " и, например, время ожидания сеанса = 2минут, сеанс заканчивается через 2 минуты после входа в систему.Слайд-истечение срока действия не работает, и пользователь выходит из системы даже во время использования сайта.

Когда я устанавливаю режим аутентификации = " Forms ", сессия ведет себя идеально, и пользователь выходит из системы, только еслиПрошло 2 минуты после последнего запроса, но аутентификация ADFS перестала работать.

Кто-то что-то знает об этой проблеме?

Служба ADFS от внешнего партнера, я не знаюконфигурация.

Вот мой код:

<sessionState timeout="2" cookieName="MB_SEID"></sessionState>

<authentication mode="None">
<forms loginUrl="~/Home/Index" defaultUrl="/" path="/" name="UID" timeout="2" protection="All" slidingExpiration="true" enableCrossAppRedirects="true" />
</authentication>

public void ConfigureAuth(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(DefaultAuthenticationTypes.ApplicationCookie);
    app.UseCookieAuthentication(new CookieAuthenticationOptions {
        CookieManager = new SystemWebCookieManager(),
        SlidingExpiration = true,
        ExpireTimeSpan = TimeSpan.FromMinutes((double)sessionTimeout),
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        CookieName = CookieAuthenticationDefaults.CookiePrefix + DefaultAuthenticationTypes.ApplicationCookie,
        Provider = new CookieAuthenticationProvider
        {
            OnResponseSignIn = ctx =>
            {
                ctx.Options.ExpireTimeSpan = TimeSpan.FromMinutes((double)sessionTimeout);
                ctx.Options.SlidingExpiration = true;
            }
        }
    });

    app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
    {
        Wtrealm = realm,
        MetadataAddress = adfsMetadata,
        Wreply = replay,
        AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,
        SignInAsAuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        UseTokenLifetime = false // set to false to manage session with the cookie middleware
    });
}

1 Ответ

0 голосов
/ 07 февраля 2019

Моя конфигурация была в порядке.Проблема была в неизвестном мной внутреннем управлении сессиями.Спасибо всем за помощь.

...