ASP.NET MVC. Überprüfen Sie, ob Benutzer berechtigt ist, von JavaScript
Ich bin mit ASP.NET MVC-Framework 3 und Forms-Authentifizierung. Ich weiß, wie zu überprüfen, die auf Server-Seite, falls der Benutzer die Berechtigung für eine Aktion (mit [Authorize]
), und ich weiß, wie zu überprüfen, diese innerhalb einer Aktion oder einer Ansicht (mit User.Identity.IsAuthenticated
oder andere Mitglieder der 'User').
Was ich versuche zu tun, ist zu definieren, JavaScript-code, der ausgeführt wird, unterschiedlich, je nachdem, ob der Benutzer berechtigt ist.
Erachten ein solches Skript auf der Seite:
<script>
function Foo(){
if(userAuthorized)
alert("You\'re in the system");
} else {
alert("You\'re not authorized");
}
<script>
Funktion Foo()
wird ausgelöst durch ein Ereignis, sagen klicken. Und ich würde gerne die Fähigkeit haben, zu prüfen, ob der Benutzer autorisiert ist, die auf Kunden Seite.
Die beste Lösung, die ich habe, kam mit zu Rendern Globale Variablen Initialisierung im Blick. Wie diese:
@if(User.Identity.IsAuthenticated)
{
<script>
var userAuthorized = true;
</script>
}
else
{
<script>
var userAuthorized = false;
</script>
}
Aber es scheint nicht zu mir wie ein guter Ansatz. Gibt es andere Wege?
Vielen Dank im Voraus.
PS: Dies ist ein usability-Problem, natürlich bin ich dabei erforderlichen überprüfungen auf dem server.
- wie etwa in externe javascript-Dateien für jeden Fall.
- Eigentlich, dachte ich, dies zu tun, wenn es keine andere Möglichkeit gibt. Anyways, vielen Dank für Ihren Kommentar.
- Ich glaube nicht, dass es etwas falsch mit Ihrem Konzept.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich finde die Idee an @Gaby ' s Kommentar, aber ich bin nicht sicher, ob das machbar da ich nicht das ganze Bild auf Ihr Projekt.
Zumindest können Sie den code vereinfachen, indem Sie...
Noch ein paar Optionen für die Verwendung einer benutzerdefinierten HTML data - Attribut oder erstellen Sie einen einfachen ajax-request, der den server bittet, wenn der Benutzer authentifiziert ist.