Je cherche un moyen idéal pour que mes formulaires de saisie s'affichent sous forme de zone de texte (modifiable), d'étiquette (en lecture seule) ou de masquée (sans accès) en fonction des rôles . Je sais que je pourrais avoir un point de vue différent pour chaque type de rôle, mais j'espérais qu'il y aurait quelque chose de nouveau qui m'empêcherait de faire 80 points de vue.ASP.NET MVC - Affichage de la valeur de formulaire par rôle
Répondre
vraiment tout dépend de où vous voulez définir vos méta-données liées à la sécurité. Que veux-tu faire? Décorez vos modèles de vue avec des attributs? Utiliser les classes de méta-buddy Dynamic Data? Configuration fluide ala StructureMap/FluentNhibernate?
Une façon de le faire en utilisant MVC Preview 2 ou le projet InputBuilder de lostechies.com et d'attributs décorations est de passer outre UIHint et de fournir vos propres valeurs UIHint retour aux constructeurs de modèle:
public class RoleUI : UIHintAttribute
{
public RoleUI(string roles) : base("","")
{
if(HttpContext.WhereverTheRoleStuffIs == "Admin")
//could be Session["CurrentUser"] too
{
this.UIHint = "Input";
}
this.UIHint = "Label";
}
}
Ainsi, votre modèle de vue :
public class AwesomeModel
{
[RoleUI("Admin")]
public string FirstName { get; set; }
}
Alors maintenant, quand le code va saisir les partials pour vous, il sait si vous souhaitez afficher dans une balise d'entrée ou tout simplement un espace réservé ou lable.
Je pense que vous êtes mieux d'avoir une vue en lecture seule et une vue modifiable j'ai peur.
Et la forme d'entrée qui est en lecture seule ne sonne pas bien, à moins que ce soit au niveau du champ lorsque vous êtes sur quelque chose.
Vous pouvez avoir un contrôle Html personnalisé qui vérifie le rôle de l'utilisateur et décide ensuite de ce qu'il doit faire.
Je l'ai fait avec ActionLinks, créé Html.ActionLinkSecured
Namespace System.Web.Mvc.Html
{
public static class HtmlHelperExtensions
{
public static string ActionLinkSecured(this HtmlHelper htmlHelper, string linkText, string action, string controller, object routeValues, bool showDisabled)
{
//check if user is logged in or whatever you wanna check
//if ok
return htmlHelper.ActionLink(...);
//else
return linkText
}
}
Vous pouvez avoir tout ce que vous voulez ... texte, zone de texte, zone de texte ... :) désactivé
- 1. ASP.NET MVC - affichage Formulaire Valeur par rôle
- 2. ASP.NET MVC + Silverlight + authentification par formulaire
- 3. DRY dans ASP.NET MVC - affichage des détails vs formulaire d'édition
- 4. Authentification par formulaire + ASP.NET MVC absolu ReturnURL
- 5. ASP.NET MVC - Puis-je utiliser la configuration du rôle de l'utilisateur ASP.NET commom avec MVC?
- 6. Asp.net mvc: Affichage de retour à partir de la vue
- 7. Utiliser un rôle Banni - ASP.NET MVC
- 8. Affichage de l'image en asp.net mvc
- 9. problème de traitement de formulaire ASP.NET MVC
- 10. Téléchargement avec ASP.NET MVC, affichage du résultat de la redirection
- 11. Affichage d'une liste d'objets dans asp.net mvc
- 12. Valeur de liste déroulante ASP.NET MVC
- 13. MVC - Activation de l'authentification par formulaire
- 14. ASP.NET MVC - Action de formulaire implicite
- 15. ASP.NET MVC - Mock une demande de formulaire
- 16. informations d'authentification de formulaire dans asp.net mvc
- 17. Comment définir manuellement le rôle d'un utilisateur dans ASP.NET MVC?
- 18. NVelocity - Affichage de la valeur monétaire
- 19. ASP.NET MVC vue partielle et nom de l'action de formulaire
- 20. Autorisation ASP.NET MVC basée sur l'appartenance au rôle ou la relation de données (propriété)
- 21. Comment utiliser l'authentification par formulaire avec asp.net mvc?
- 22. D'où proviennent les champs de formulaire dans ASP.Net MVC?
- 23. Comment conserver la valeur de recherche JQuery dans ASP.Net MVC
- 24. ASP.NET MVC - DropDownLists Chargement en fonction de la valeur
- 25. Remplacer le fournisseur de rôle - ASP.NET
- 26. asp.net mvc html.password set valeur
- 27. asp.net adhésion/fournisseur de rôle question
- 28. Fournisseur de rôle ASP.NET vs fournisseur d'appartenance
- 29. ASP.NET MVC: Formulaire d'entrée aux URL jolies
- 30. Adhésion à asp.net - comment créer un administrateur par rapport au rôle de membre
Etes-vous sûr de ne pas rediriger vers des vues différentes dans le contrôleur en fonction de Rôle? Une vue 'edit' devrait rester une vue 'edit'. Sauf si vous recherchez des restrictions d'édition au niveau du champ. – CmdrTallen