c# - 生产服务器上的 ASP.NET Identity session 过期过快

标签 c# asp.net session access-token expired-sessions

申请后this tutorial对于我的项目,在我的本地主机上没有问题,但是当我部署到 plesk 上的产品服务器时, session 过期太快。大概不到5分钟,而且一直这样。

由于教程使用 localStorage 而不是 cookie,我不确定是否应该检查 cookie 超时。

哦,另一方面,我的 Startup.Auth.cs 中有这个:

    public void ConfigureAuth(IAppBuilder app)
    {
        //...
        OAuthOptions = new OAuthAuthorizationServerOptions
        { 
            //...
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
        };
    }

prod IIS 如何设置超时以及我应该在我的 web.config 中做什么来覆盖这个超时?

最佳答案

我假设您的意思是 14 天对于您的生产环境来说还不够长?如果不是,您将必须澄清“太快”的确切含义。

最简单的方法是在您的 web.config 中添加一个设置。

<appSettings>
    <add key="cookieExpirationDays" value="30"/>
</appSettings>

然后在你的方法中设置它。

 public void ConfigureAuth(IAppBuilder app) {
    //...
   var daysStr = System.Configuration.ConfigurationManager.AppSettings["cookieExpirationDays"];
   var days = string.IsNullOrEmpty(daysStr) ? 14 : int.Parse(daysStr);
    OAuthOptions = new OAuthAuthorizationServerOptions
    { 
    //...
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(days),
  };
}

EDIT(响应 OP 编辑​​)

如果您使用 cookie 来保存身份验证 token ,请尝试此操作(请参阅初始化程序的最后一行)。

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    CookieName = "SecurityCookie",
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Authentication/Login"),
    CookieSecure = CookieSecureOption.SameAsRequest,
    CookieHttpOnly = true,
    AuthenticationMode = AuthenticationMode.Active,
    Provider = cookieProvider, // instance of Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider
    LogoutPath = new PathString("/Authentication/LogOff"),
    SlidingExpiration = true,
    ExpireTimeSpan = TimeSpan.FromDays(days),
});

编辑 2 添加示例链接

Complete tutorial

General Microsoft Documentation and Help

关于c# - 生产服务器上的 ASP.NET Identity session 过期过快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32191685/

相关文章:

c# - 如何使用 ASP.NET Repeater 制作幻灯片

javascript - vb.net web方法接受json

asp.net - 多服务器设置上的“进程内” session 状态模式?

C# - 安全地连接到远程 SQL Server?

c# - 星际争霸 2 之类的游戏是否使用 Windows 窗体来构建其 UI?

c# - asp.net mvc 2 RC 是否已准备好投入生产

javascript - 我如何覆盖 ScriptResource.axd javascript 函数中内置的 asp.net

c# - 粘性页脚确实与需要滚动的页面上的文本重叠

session - TempData Cookie问题。请求 header 的大小太长

java - 打开 hibernate session 而不关闭它的影响