5 Stimmen

ServiceStack setzt Authentifizierung auf Razor-Ansicht

(Ich spreche von einem reinen SS-Projekt, bitte nicht zu verwechseln mit MVC Razor)

Wie können wir den Besuch auf eine SS Razor-Ansicht mit Authentifizierung beschränken?

Das heißt, wie rufen wir die Benutzersitzung und den Autorisierungscode von SS Razor aus auf?

Ich möchte etwas Ähnliches tun:

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

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

3voto

Ostemar Punkte 5670

Mir ist keine Methode bekannt, dies direkt von einer SS Razor-Seite aus zu tun. Als ich jedoch das gleiche Dilemma hatte, löste ich es, indem ich einen Dienst erstellte, der stattdessen die Seite aufrief. Auf diese Weise können Sie den Service der Seite mit dem Authorize Attribut und wird auf die Anmeldeseite umgeleitet, wenn der Benutzer nicht authentifiziert ist.

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

Um die aktuelle Sitzung auf der Razor-Seite abzurufen, können Sie GetSession<T> .

@{
    var currentSession = GetSession<CustomUserSession>();
}

<div>Hello @currentSession.UserName</div>

Ein weiterer Vorteil ist, dass Sie eine stark typisierte Ansicht erhalten und Daten für die Ansicht vom Dienst bereitstellen können.

@inherits ViewPage<MyPageViewModel>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X