2013-07-04 5 views
1
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)); 
     } 
} 

답변

2

AuthUserSession가 지속 및 데이터 저장소에서 검색 한 것 만 모델 내 CustomUserSession에 autowire가 점점하지 .

대신, 예컨대 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)); 
}