2013-01-02 11 views
14

Przeproś za pytanie o noob. Właśnie zaczyna się uczyć servicestack. Używam samohostowanej aplikacji konsolowej z Razor dla mojego mechanizmu wyświetlania, wtyczki "RegistrationFeature" do rejestracji i CredentialsAuthProvider do uwierzytelniania za pośrednictwem postu, aby umożliwić użytkownikom logowanie.Jak wylogować uwierzytelnionego użytkownika w ServiceStack?

Aplikacja SocialBootStrap używa MVC 3 i wykonuje "FormsAuthentication.SignOut()", aby umożliwić użytkownikom wylogowanie. Biorąc pod uwagę, że korzystam z aplikacji hostowanej samodzielnie, utworzyłem usługę LogoutService, która po prostu wykonuje Request.RemoveSession() i wydaje się działać.

Czy to właściwy sposób na wylogowanie się z sesji użytkownika?

Odpowiedz

25

Istnieje jawna usługa wylogowania, tj. /auth/logout jako część ServiceStack's Authentication support, której należy użyć zamiast tego.

Można zrobić GET lub POST do /auth/logout lub jeśli używasz C# klienta można wylogować się z:

client.Post(new Authenticate { provider = "logout" }); 
+1

Dziękuję, wow, że było poniżej 20 minut, aby uzyskać odpowiedź :)! –

+2

Nie ma za co :) Ta Q akurat była tam, kiedy robiłam swoje cykliczne rundy - nie zawsze będziesz miał tyle szczęścia :) – mythz

+1

Pamiętaj, że ta magiczna usługa nie jest nigdzie wymieniona (lub przynajmniej nie) na Strona wiki uwierzytelniania. – jklemmack

5

Na ServiceStack v4 trzeba tę linię zamiast.

client.Post(new Authenticate { provider = AuthenticateService.LogoutAction }); 
Powiązane problemy