C# 使用ServiceStack增加AuthSession

C# 使用ServiceStack增加AuthSession,c#,.net,sql-server,api,C#,.net,Sql Server,Api,我需要您的帮助,我正在使用servicestack for移动应用程序中使用的api。我们有自己的身份验证提供商,但问题是,如果我们不在移动设备上进行任何活动来调用api,那么会话将在30分钟后过期,用户将从移动应用程序注销。我需要有关如何将此会话超时增加到5天或更长时间的帮助 以下是我在项目中使用的stackservice的版本 <package id="ServiceStack" version="3.9.56" targetFramework="net45" /> <

我需要您的帮助,我正在使用servicestack for移动应用程序中使用的api。我们有自己的身份验证提供商,但问题是,如果我们不在移动设备上进行任何活动来调用api,那么会话将在30分钟后过期,用户将从移动应用程序注销。我需要有关如何将此会话超时增加到5天或更长时间的帮助

以下是我在项目中使用的stackservice的版本

 <package id="ServiceStack" version="3.9.56" targetFramework="net45" />
  <package id="ServiceStack.Common" version="3.9.56" targetFramework="net45" />
  <package id="ServiceStack.Host.AspNet" version="3.9.33" />
  <package id="ServiceStack.OrmLite.SqlServer" version="3.9.56" targetFramework="net45" />
  <package id="ServiceStack.Redis" version="3.9.57" targetFramework="net45" />
  <package id="ServiceStack.Text" version="3.9.56" targetFramework="net45" />

控制ServiceStack中生存期的最灵活的方法是在每次保存会话时拦截,并通过覆盖
AppHost
中的
OnSaveSession
更改保存会话的有效期,因此您可以指定会话持续时间5天

public override void OnSaveSession(
    IRequest httpReq, IAuthSession session, TimeSpan? expiresIn = null)
{
    base.OnSaveSession(httpReq, session, TimeSpan.FromDays(5));
}

注意:会话保存在注册服务器中,默认情况下,注册服务器使用
MemoryCacheClient
将会话保存在内存中,如果应用服务器重新启动,所有经过身份验证的会话都将丢失。通过配置为使用任何其他会话,您可以在应用程序重新启动时保持会话。

好的,谢谢您的回复。明天早上我将签入此解决方案,并将根据您提供的解决方案进行更新,因为我使用的库较旧,不支持覆盖方法。我正在使用servicestack的2.050版本,您知道其他解决方案吗。@user3604950没有,如果您知道真实版本,您可以浏览并查看
SessionFeature
上是否有任何到期属性选项。我已检查SessionFeature,没有可用的到期属性。serviceStack版本i已在问题部分中更新。您知道此版本的任何解决方案。