gpt4 book ai didi

c# - 使用 ServiceStack 增加 AuthSession

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:12 24 4
gpt4 key购买 nike

我需要你的帮助,因为我正在为移动应用程序中使用的 api 使用 servicestack。我们有自己的身份验证提供程序,但问题是如果我们不在移动设备上执行任何事件来调用 api,则 session 会在 30 分钟后过期并且用户将从移动应用程序注销。我需要有关如何将此 session 超时增加到 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" />

最佳答案

最灵活的控制方式Session ServiceStack 中的生命周期是通过在每次保存 session 时进行拦截,并通过覆盖 AppHost 中的 OnSaveSession 来更改保存的 session 到期时间,因此您可以指定 session 持续 < strong>5 天:

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

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

关于c# - 使用 ServiceStack 增加 AuthSession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52735877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com