【问题标题】:ASP.Net External Cookie with Sliding Expiration appearing as a Session cookie带有滑动过期的 ASP.Net 外部 Cookie 显示为会话 cookie
【发布时间】:2018-10-05 21:06:57
【问题描述】:

我正在尝试在 Asp.Net 中配置一个可滑动的过期 cookie。我希望 cookie 出现在 Google Chrome 开发人员工具 cookie 管理器中,并在身份验证后 5 分钟到期,但它显示为“会话”,并且在单击退出按钮之前永不过期。如果浏览器关闭,它确实会消失。

下面是当前的代码。该网站使用基于 Saml 的单点登录身份验证和 Kentor.AuthServices nuget 包(现在称为 SustainSys.Saml2,我们落后于版本)。

app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/signin"),
    CookieSecure = CookieSecureOption.SameAsRequest,
    ExpireTimeSpan = TimeSpan.FromMinutes(5),
    SlidingExpiration = true,
    Provider = new CookieAuthenticationProvider
    {
        OnApplyRedirect = ctx => { },
        OnResponseSignIn = context =>
        {
            context.Properties.AllowRefresh = true;
            context.Properties.ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(5);
        }
    }
});

app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

Kentor.AuthServices.Configuration.Options.GlobalEnableSha256XmlSignatures();

OnResponseSignIn 块最近是基于此 MSDN 答案添加的: https://forums.asp.net/t/2121970.aspx?OWIN+Authentication+ExpireTimeSpan+not+working

我希望 cookie 在 30 分钟的非活动时间内过期。上面的代码设置为5,方便测试。

【问题讨论】:

    标签: asp.net cookies owin-middleware kentor-authservices sustainsys-saml2


    【解决方案1】:

    开发者工具会显示 cookie 的过期时间。这与身份验证令牌过期时间没有直接关系,实际上这对于您的代码也应该是正确的。

    this comment所示“过期信息存储在受保护的cookie票据中”。令牌过期时间应该是take effect properly,即使您在开发者工具中看不到它,因为它在 cookie 本身内被加密。

    【讨论】:

    • 这不是一个合适的答案。答案不能简单地链接到其他答案。
    • 链接不是指向答案的链接,而是指向确定问题中描述的行为的代码的链接。
    • 再次。没有答案。
    • 编辑后怎么样?在这些(权威)链接中呈现信息的哪种模式可以作为有效答案?
    猜你喜欢
    • 1970-01-01
    • 2016-11-08
    • 2017-03-16
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 2012-03-15
    • 2012-10-02
    相关资源
    最近更新 更多