public class SteamUserSession : AuthUserSession
{
public UserService UserService { get; set; } //Should be autowired
public long SteamID { get; private set; }
public User CurrentUser { get; private set; }
public Player SteamProfile { get; private set; }
public List<SteamGame> OwnedApps { get; private set; }
public override void OnAuthenticated(
IServiceBase authService,
IAuthSession session,
IOAuthTokens tokens,
Dictionary<string, string> authInfo)
{
base.OnAuthenticated(authService, session, tokens, authInfo);
// access servicestack user server and load properies for session here
CurrentUser = (User)UserService.Get(new GetUser(SteamID));
}
}
答案 0 :(得分:2)
AuthUserSession
只是一个模型,它是从数据存储中保留和检索的,即它不是从IOC解析(和自动装配)的服务/过滤器/等或控制器。< / p>
您可以使用传入的authService
从IOC检索依赖关系,例如:
public override void OnAuthenticated(
IServiceBase authService,
IAuthSession session,
IOAuthTokens tokens,
Dictionary<string, string> authInfo)
{
base.OnAuthenticated(authService, session, tokens, authInfo);
// access servicestack user server and load properies for session here
var userService = authService.TryResolve<UserService>();
CurrentUser = (User)userService.Get(new GetUser(SteamID));
}