Ich verwende ASP.NET MVC Framework 3 und Formularauthentifizierung. Ich weiß, wie man auf der Serverseite überprüft, ob der Benutzer für eine Aktion autorisiert ist (mit [Authorize]
) und ich weiß, wie man dies innerhalb einer Aktion oder einer Ansicht überprüft (mit User.Identity.IsAuthenticated
oder anderen Mitgliedern von 'User') ).
Was ich versuche, ist, einen JavaScript-Code zu definieren, der je nachdem, ob der Benutzer autorisiert ist, anders ausgeführt wird.
Betrachten Sie ein solches Skript auf der Seite:
%Vor% Die Funktion Foo()
wird von einem Ereignis ausgelöst, sagen Sie klicken. Und ich hätte gerne eine Möglichkeit, auf der Client-Seite zu überprüfen, ob der Benutzer autorisiert ist.
Die beste Lösung, die ich mir ausgedacht habe, besteht darin, die Initialisierung der globalen Variablen tatsächlich in Sicht darzustellen. So:
%Vor%Aber mir scheint das nicht gut zu sein. Gibt es noch andere Möglichkeiten? Vielen Dank im Voraus.
PS: Dies ist ein Usability-Problem, natürlich mache ich notwendige Überprüfungen auf dem Server.
Ich mag die Idee in @ Gabys Kommentar, obwohl ich mir nicht sicher bin, ob das machbar ist, da ich nicht das ganze Bild auf Ihrem Projekt habe.
Zumindest können Sie Ihren Code vereinfachen, indem Sie ...
%Vor%Ein paar weitere Optionen wären, ein benutzerdefiniertes HTML-Datenattribut zu verwenden oder ein einfaches zu erstellen Ajax-Anfrage, die den Server fragt, ob der Benutzer authentifiziert ist.
Tags und Links asp.net-mvc-3 javascript authentication authorization forms-authentication