使用身份验证模式=“无”的SlidingExpiration?

时间:2019-02-04 18:13:38

标签: asp.net-mvc session asp.net-identity owin session-cookies

我正在使用ASP.NET MVC应用程序会话,尝试使用“ UseCookieAuthentication”和“ UseWsFederationAuthentication”通过OWIN实现ADFS身份验证。

仅当我在web.config中设置 authentication mode =“ None” 时,才可使用ADFS身份验证

问题在于,当我设置身份验证模式=“ ”时,例如,会话超时= 2分钟,会话将在登录后2分钟结束。滑动到期不起作用,即使在使用该网站时,用户也会注销。

当我将身份验证模式设置为“ 表单”时,会话将表现完美,并且只有在上次请求后经过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 :(得分:0)

我的配置还可以。问题是我未知的内部会话管理。 谢谢大家的帮助。