【问题标题】:MVC 5 Identity Automatic LogoutMVC 5 身份自动注销
【发布时间】:2014-03-03 11:08:25
【问题描述】:

如何实现自动注销计时器。

所以基本上如果用户在 x 分钟内不活动,他们的会话就结束了?

我试过了:

<system.web> 
   <sessionState timeout="1"/>
</system.web>

但它似乎不起作用。

这是我启动时的代码:

public void ConfigureAuth(IAppBuilder app)
{
  // Enable the application to use a cookie to store information for the signed in user
  app.UseCookieAuthentication(new CookieAuthenticationOptions
  {
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
      LoginPath = new PathString("/Account/Login")
   });
 }

这说明我正在使用 cookie 身份验证。所以我不知道如果我能做到这意味着什么。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-5 asp.net-identity owin asp.net-authentication


    【解决方案1】:

    它是App_Start\Startup.Auth.cs 文件中的一个属性:

      app.UseCookieAuthentication(new CookieAuthenticationOptions
      {
          ExpireTimeSpan = TimeSpan.FromMinutes(5),
          AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
          LoginPath = new PathString("/Account/Login")
       });
    

    【讨论】:

    • 也可以让系统重定向或显示页面超时请重新登录?
    • 确定如果您有一个 [Authorize] 属性来保护您的操作,它会自动将您重定向到选项中的 LoginPath。也就是它将您重定向到登录页面。
    • 我相信正确的名称是 ExpireTimeSpan。可能在 V2 的更新中发生了变化。
    • 你好。我遵循你的方法,但它对我不起作用。我设置了 ExpireTimeSpan 并添加了 [Authorize] 但仍然是用户在时间到期时记录。
    • 这不起作用。 ExpireTimeSpan 用于即使用户仍处于活动状态也要使用户会话到期。对于不活动,首先需要将SlidingExpiration 设置为true,然后添加以下代码。 Provider = new CookieAuthenticationProvider { OnResponseSignIn = context =&gt; { context.Properties.AllowRefresh = true; context.Properties.ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(10); } }
    猜你喜欢
    • 2015-05-31
    • 2014-08-01
    • 2014-12-24
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 2014-08-20
    相关资源
    最近更新 更多