L'utilisation de l'Utilisateur.IsInRole() dans une Vue
Dans mon mvc5 projet de désactiver un lien d'action pour les utilisateurs non autorisés j'ai aimé cette
@if (User.IsInRole("Admin") | User.IsInRole("Manager"))
{
@Html.ActionLink("Add New Record", "ProductTypeIndex", "ProductType")
}
Mais si il y a de nombreux rôles à vérifier ensuite ce @si() est longue. Comment faire pour éviter cela? Dois-je besoin de l'aide personnalisée pour cela(si oui comment puis je m'approche d'elle)? Aide appréciée..
OriginalL'auteur Isuru | 2015-09-03
Vous devez vous connecter pour publier un commentaire.
Vous pouvez écrire votre propre méthode d'extension et de l'utiliser dans votre code.
Maintenant, simplement, on pourrait appeler cette méthode d'extension comme ceci:
Alors que vous pourriez utiliser ces méthodes d'extension dans les vues, mais essayez d'éviter l'écriture de vos applications de la logique dans les vues, autant que possible, puisque les avis de ne pas l'unité vérifiable facilement.
J'ai changé un peu pour être en mesure d'utiliser la même chaîne que dans l'autoriser attribut:
Authorize (Roles = "group1,group2,group3")
. Vous pouvez trouver ma version ici. De cette façon, vous pouvez également utiliser:User.IsInAnyRoles ("group1,group2,group3")
OriginalL'auteur Sam Farajpour Ghamari
C'est de loin la meilleure et la réponse la plus simple, et est entièrement auto-explicatif.
OriginalL'auteur