c# - ServiceStack 会话时间增加
问题描述
如何增加会话时间。它在 10 分钟后注销,但我需要将其延长至 2 小时。
我的代码:
public override void OnAuthenticated(IServiceBase AuthService, IAuthSession Session, IOAuthTokens Tokens, Dictionary<string, string> AuthInfo) {
try {
base.OnAuthenticated(AuthService, Session, Tokens, AuthInfo);
//var Manager = new ArbProManager(false, 0, "ArbProService");
//fwkArbProMobile.dbContext.EntityUserAccount User;
string dbName = ConfigurationManager.AppSettings["MasterDatabase"];
DAL.MobileUser usrContext = new DAL.MobileUser(dbName);
Types.MobileUser User = usrContext.GetForEmail(Session.UserAuthName);
// User = Manager.UserAccountInstance(Session.UserAuthName);
Session.UserAuthId = User.Id.ToString();
Session.DisplayName = User.EmailAddress;
Session.Email = User.ClientDatabaseName;
Session.Sequence = User.UserGuid.ToString();
//var session = AuthService.GetSession();
//AuthService.SaveSession(session, TimeSpan.FromDays(100));
//AuthService.SaveSession(Session, SessionExpiry);
//var sessionKey = SessionFeature.GetSessionKey(AuthService.GetSessionId());
//redis.ExpireEntryIn(sessionKey, slidingExpiry);
//new CredentialsAuthProvider { SessionExpiry = TimeSpan.FromDays(10) };
//AuthService.SaveSession(Session, SessionExpiry);
Logger.InfoFormat("ArbProAuthProvider:UserId {0} logged in as {1}", Session.UserAuthId, Session.DisplayName);
}
catch (Exception ex) {
Logger.ErrorFormat("OnAuthenticated:Error='{0}'", ex.ToString());
throw ex;
}
}
解决方案
在 ServiceStack 中控制Session生命周期的最灵活的方法是在每次保存 Session 时进行拦截,并通过覆盖OnSaveSession
您的 Session 来更改保存的 Session Expiry AppHost
:
public override void OnSaveSession(
IRequest httpReq, IAuthSession session, TimeSpan? expiresIn = null)
{
var customExpiry = ...
base.OnSaveSession(httpReq, session, customExpiry);
}
推荐阅读
- php - 基于 url 字符串在 iframe 中加载页面
- android - 添加 placeautocomplete 编译时未找到与给定名称匹配的资源(在“背景...”处)
- c# - 在 Asp.net Core 中使用 InstaSharper 将照片上传到 Instagram
- android - kotlin Android Studio 标签布局
- android - android:相对布局中两个文本视图之间的间隙
- vb.net - vb.net vbcrlf、environment.newline & vbcr 不工作
- python - Python 脚本将两个 wav 文件合并,而不是取消它们之间的共同幅度
- r - R中我的时间序列趋势中的NA值
- webpack - 如何解决语法错误:Webpack postcss 加载器不必要的大括号?
- sql-server - SQL Server Always Encrypted:操作数类型冲突:varchar 与 varchar(max) 不兼容