ASP.NET MVC. Vérifie si l'utilisateur est autorisé à partir de JavaScript
Je suis en utilisant ASP.NET Framework MVC 3 et l'Authentification de Formulaires. Je sais, comment le vérifier sur les serveurs de côté, si l'utilisateur est autorisé pour un peu d'action (avec [Authorize]
) et je sais, comment vérifier cela au sein d'une action ou d'un point de vue (avec User.Identity.IsAuthenticated
ou d'autres membres de "l'Utilisateur").
Ce que je suis en train de faire est de définir un code JavaScript, qui sera exécuté différemment selon si l'utilisateur est autorisé.
De considérer ce script sur la page:
<script>
function Foo(){
if(userAuthorized)
alert("You\'re in the system");
} else {
alert("You\'re not authorized");
}
<script>
Fonction Foo()
est déclenchée par un événement, dire sur. Et j'aimerais avoir une capacité à vérifier si l'utilisateur est autorisé, sur les clients côté.
La meilleure solution que j'ai est venu avec est pour afficher des variables globales de l'initialisation en vue. Comme ceci:
@if(User.Identity.IsAuthenticated)
{
<script>
var userAuthorized = true;
</script>
}
else
{
<script>
var userAuthorized = false;
</script>
}
Mais il ne me semble une bonne approche. Existe-il d'autres moyens?
Merci à l'avance.
PS: C'est un problème de convivialité, bien sûr, je suis en train de faire les vérifications nécessaires sur le serveur.
En fait, je pensais à le faire, si il n'y a pas d'autre moyen. En tout cas, merci pour votre commentaire.
Je ne pense pas qu'il ya quelque chose de mal avec votre approche.
OriginalL'auteur Dmitriy | 2011-04-14
Vous devez vous connecter pour publier un commentaire.
J'aime l'idée de @Gaby commentaire, même si je ne suis pas sûr de savoir si c'est faisable puisque je n'ai pas l'image en entier sur votre projet.
À tout le moins, vous pouvez simplifier votre code en faisant...
OriginalL'auteur jessegavin
Un autre couple d'options serait d'utiliser un HTML attribut data- ou créer une simple requête ajax qui demande au serveur si l'utilisateur est authentifié.
OriginalL'auteur Charlino