Ich habe versucht, dies zu tun:
@{ Html.RenderAction("MenuPartial", "MenuPartial"); }
@if (SessionWrapper.IsAuthenticated)
{
@RenderBody()
}
else
{
Html.RenderPartial("AccessDeniedPartial");
}
Aber natürlich ist das nicht erlaubt, da ich @RenderBody() haben muss, oder es tritt eine Ausnahme auf. Das Problem ist, dass diese Lösung so ordentlich gewesen wäre, ich möchte immer noch den oberen Teil der Seite rendern, aber ich möchte den Inhalt überschreiben, es sei denn, der Benutzer ist angemeldet.
Die einzige andere Lösung, die mir einfällt, ist die Prüfung im Controller durchzuführen und eine andere Ansicht zurückzugeben. Das Problem dabei ist, dass ich diesen Code in jedem Controller wiederholen müsste, was mich traurig macht.
Gibt es eine Möglichkeit, den Inhalt global zu überschreiben, ähnlich wie oben, ohne den Benutzer auf eine andere URL umzuleiten? Wenn ja, könnten Sie mich bitte in die richtige Richtung lenken. Ich scheine in meiner aktuellen Denkweise ein wenig festzustecken.
Ich verwende nicht die Standard-Microsoft-Sicherheitsklassen (FormsAuthentication), noch bin ich in diesem Fall in der Lage dazu.
Danke.