Fournisseur d'emplacement
Question
Nous devons remplacer le système de menus dans notre application ASP.NET principale.Nous nous tournons donc naturellement vers ASP.NET SiteMapProvider
et Menu
contrôles.Cependant, nous avons également besoin de suffisamment de sécurité pour empêcher les utilisateurs de saisir directement des URL auxquelles ils ne devraient pas avoir accès.Nous pouvons le faire en mettant <location>
entrées dans web.config et les sécuriser individuellement, mais ce sera un PITA à gérer sur plusieurs serveurs Web.
Y a-t-il un Provider
qui peut être utilisé pour, eh bien, fournir l'équivalent du <location>
entrées ?Je n'ai pas réussi à en trouver, et c'est un peu frustrant compte tenu de l'existence du Emplacement de configuration classe.
Alternativement, existe-t-il une option de configuration qui nous manque dans SiteMapProvider et qui empêcherait les utilisateurs d'accéder à des URL qu'ils ne devraient pas ?
La solution
Pourquoi ne créez-vous pas des droits et des profils pour gérer les pages qu'un utilisateur peut voir ?Je crée généralement une classe d'utilisateurs qui implémente l'interface de sécurité IPrincipal.À chaque requête adressée à votre application, vous vérifiez les droits d'un utilisateur particulier et affichez les nœuds du SiteMap autorisés pour cet utilisateur.