【问题标题】:SlidingExpiration using authentication mode="None"?SlidingExpiration 使用身份验证模式=“无”?
【发布时间】:2019-06-28 12:57:03
【问题描述】:

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

只有当我在 web.config 中设置 authentication mode="None" 时,ADFS 身份验证才有效

问题是当我设置身份验证模式="None" 并且,例如,会话超时 = 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
    });
}

【问题讨论】:

  • 我认为您需要为此 ADFS 身份验证发布一些配置。
  • 谢谢,我用我的代码更新了帖子。

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


【解决方案1】:

我的配置没问题。问题是我不知道的内部会话管理。 谢谢大家的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2021-12-09
    • 1970-01-01
    • 2013-05-30
    • 2012-10-23
    • 2018-11-08
    • 1970-01-01
    相关资源
    最近更新 更多