2012-10-20 11 views
5

(mówię o czystym projektu SS, proszę nie mylić z MVC Razor)ServiceStack umieścić uwierzytelniania do Razor widzenia

Jak ograniczyć wizytę w SS Razor zobaczyć z uwierzytelnianiem?

To znaczy, w jaki sposób wywołujemy sesję użytkownika i kod autoryzacji z SS Razor?

Chciałbym zrobić coś takiego:

@inherits ViewPage 
@Authenticate(RedirectUrl = "/Login") 

<div>Hello @UserSession.UserName</div> 
<div>You are in the secured area now</div> 

Odpowiedz

3

nie jestem świadomy jakikolwiek sposób to zrobić bezpośrednio ze strony SS Razor. Jednak gdy miałem ten sam dylemat, rozwiązałem go, tworząc usługę, która wyświetlała stronę. W ten sposób możesz udekorować usługę strony za pomocą atrybutu Authorize i zostanie przekierowany na stronę logowania, jeśli użytkownik nie jest uwierzytelniony.

[Authorize] 
public class MyPageService : IService<MyRequestDTO> 
{ 
    public object Execute(MyRequestDTO request) 
    { 
     ... 
     return new MyPageViewModel(); 
    } 
} 

Aby pobrać bieżącą sesję na stronie maszynki można użyć GetSession<T>.

Kolejną zaletą jest to, że można uzyskać mocno napisany widok i dostarczyć dane do widoku z usługi.

@inherits ViewPage<MyPageViewModel> 
+0

Po pierwsze, bardzo dziękuję za odpowiedź. Kiedy mówisz "używaj interfejsu usługi", czy chcesz utworzyć klasę podstawową, taką jak "AuthenticateService", dziedziczy to "MyService". MyService: AuthenticateService, również AuthenticateResponse: IhasResponseStatus, a następnie MyResponse: AuthenticateResponse ... tak? – Tom

+0

@ Tom, używane złe sformułowanie tam. Chodziło mi o stworzenie usługi. Zmieniłem odpowiedź. – Ostemar

+0

dziękuję. Teraz rozumiem. – Tom