2015-07-09 2 views
0

Я новичок в Servicestack. У меня есть приложение MVC4 и приложение для сервисов , развернутое на разных серверах. Я хочу использовать сеанс servicestack без аутентификации с MemoryCacheClient.Сессия без аутентификации с MemoryCacheClient в servicestack с MVC4

я не могу понять объяснение, данное в

https://github.com/ServiceStack/ServiceStack/wiki/Sessions

Я хочу, чтобы проверить, если сессия есть для каждого запроса, и если seesion является недействительным создать новую сессию с таможенной стоимостью в качестве идентификатора пользователя.

Мой метод настройки как followes

public override void Configure(Container container) 
     { 
      //use session feature only 

      Plugins.Add(new SessionFeature()); 

      // use MemoryCacheClient 

      container.Register<ICacheClient>(new MemoryCacheClient()); 

      // in global request filter check if session exists 
      this.GlobalRequestFilters.Add((req, res, requestDto) => 
      { 
       //check if session exists 
       var sessionId = req.GetSessionId(); 
       if (sessionId == null) 
       { 
        //if no populate session with user defined data (user id from requestDto) 
       } 
       else 
       { 
        //how to get the values from session ? 
       } 
    } 

Пожалуйста, помогите. Заранее спасибо

ответ

1

The SessionFeature уже регистрирует свой собственный Global Request Фильтр для автоматического создания недостающего временной или постоянной сессии Идентификаторы (т.е. ss-id или ss-pid).

Похоже, вы хотите зарегистрировать Custom AuthEvent для ответа на различные события в жизненном цикле сеанса, то есть IAuthEvents.OnCreated().

+0

спасибо. еще один вопрос, как аутентифицировать учетные данные службы nework в servicestack – amol

+0

@amol register 'AspNetWindowsAuthProvider' в AuthFeature на сервере и ServiceClients может использовать' client. Полномочия = CredentialCache.DefaultCredentials' – mythz

+0

я добавил Plugins.Add (новый AuthFeature ( () => новый CustomUserSession(), новые IAuthProvider [] { новый AspNetWindowsAuthProvider (это) {AllowAllWindowsAuthUsers = TRUE}, } )) ; в apphost и у клиента я использую var client = new JsonServiceClient (ConfigurationManager.AppSettings ["applicationUrl"]) { Credentials = CredentialCache.DefaultCredentials }; – amol

Смежные вопросы