Jak poprawnie używać uwierzytelniania ServiceStack w kontrolerze ASP.Net MVC

Mam problem z uzyskaniem atrybutu ServiceStack [Authentication] do pracy w kontrolerze ASP.Net MVC4, metody stron / akcji z atrybutem przekierowują użytkowników na stronę logowania nawet po poprawnym podaniu danych logowania.

Podążyłem za przykładem SocialBootstrapApi, z tą różnicą, że wszystkie wywołania usługi uwierzytelniania są wykonywane z kontrolerów:

this.CreateRestClient().Post<RegistrationResponse>("/register", model);

Inne rzeczy, które dotychczas zrobiłem:

Użyj mojej własnej podklasy implementacji sesji użytkownika AuthUserSession (niezbyt różni się od przykładu, ale używając własnej implementacji tabeli użytkownika)Dziedzicz ServiceStackController na moim kontrolerze BaseController, zastępując domyślny adres URL logowaniaWłącz funkcję Auth w AppHost przy implementacji sesji użytkownika

Rejestracja działa, logika autoryzacji użytkownika działa (nawet jeśli sesja nie trwa) i widzęss-id iss-pid pliki cookie w żądaniu.

Więc moja pełna lista pytań:

Jak sprawić, aby atrybut [Uwierzytelnij] działał (lub co zrobiłem źle)?Jak zapisać i ponownie wykorzystać sesję użytkownika w kontrolerze MVC? W tym momenciethis.UserSession jest zawsze zerowy.Jak wylogować użytkownika?this.CreateRestClient().Get<AuthResponse>("/auth/logout"); nie działa.

Aktualizacja 1:
Pliki cookie sesji (ss-id iss-pid) zostaje utworzony, gdy próbuję załadować zabezpieczoną stronę (te z atrybutem [Authenticate]), zanim zostaną przesłane jakiekolwiek poświadczenia. Czy to jest oczekiwane zachowanie?

Aktualizacja 2:
Widzę, że sesja jest zapisanaMemoryCacheClient, jednak próbuje odzyskać go w kontrolerze podstawowym przezthis.Cache.Get<CustomUserSession>(SessionKey) zwraca wartość null (gdzie SessionKey ma postać:urn:iauthsession:1)

questionAnswers(2)

yourAnswerToTheQuestion