J'ai un site Web ASP.NET 2.0 [pas ajax ...] qui sera déployé sous forme compilée sur plusieurs sites clients . Généralement, le site sera uniquement intranet. Certains clients font confiance à tous leurs employés et ne se soucient pas de limiter l'accès au site et/ou aux fonctions de la page, d'autres ne font confiance à personne et veulent que certaines personnes et/ou groupes puissent voir certaines pages, cliquer sur certains boutons, Al. Je pourrais faire une solution locale, peut-être conduire les autorisations d'accès à partir d'une table de base de données, mais avant que je descende cette route je pensais que je demanderais à SO: quelle est une bonne solution pour cette situation? de préférence, celui qui peut être contrôlé complètement dans le fichier web.config et/ou la base de données, car la reconstruction du site web n'est pas possible (pour le client, et je ne veux pas avoir à le faire pour eux encore et encore). L'intégration d'Active Directory serait un bonus, mais pas une exigence (à moins que ce ne soit plus simple).sécurité de site Web asp.net configurable par le client pour un contrôle précis de l'accès aux pages et aux boutons
comme point de départ, je pense que donner chaque page/point de fonction dans le site une identité et associé à un groupe d'autorisation ...
EDIT: section d'autorisation web.config pour permettre/refuser l'accès par rôle et utilisateur est bon, mais ce n'est que la moitié du problème - l'autre moitié contrôle l'accès aux méthodes individuelles (boutons, peu importe) sur chaque page. Par exemple, certains utilisateurs peuvent voir quelles peuvent être les adresses, tandis que d'autres peuvent modifier, créer, supprimer ou désactiver/activer. Tous ces boutons/liens/actions sont sur la page de vue ...
[Idéalement je voudrais faire les boutons invisibles handicapés, mais ce n'est pas important ici]
EDIT: quelques bonnes suggestions à ce jour, mais pas de solution complète encore - se penchant toujours vers une solution axée sur base de données ...
- autorisation de sécurité des attributs de la demande jetteront exceptions lorsque les boutons sont cliqués, ce qui est une chose facile à faire; Je préférerais cacher les boutons que l'utilisateur n'est pas autorisé à utiliser
- Le contrôle LoginView est également intéressant, mais nécessiterait la réplication de la majeure partie du contenu de la page plusieurs fois (une fois pour chaque rôle) et peut ne pas gérer le cas où un l'utilisateur est dans plus d'un rôle - je ne peux pas supposer que les rôles sont hiérarchiques, car ils seront définis par le client
EDIT: la plate-forme est Win2K/XP, SQL Server 2005, ASP.NET 2.0, ne pas utiliser AJAX
une approche intéressante, mais qui ne résout que la moitié du problème - certains utilisateurs peuvent être en mesure d'afficher une certaine page, mais ne cliquez pas sur certains boutons de cette page ... –
accepté comme "la réponse" de sorte que les Stats la page va cesser de me harceler –