2010-06-28 8 views
1

Je fais des recherches sur la sécurité et les sitemaps sur ASP.net et je suis malheureusement à court de temps. Je n'ai pas trop travaillé avec la sécurité ASP.net, donc je ne suis pas tout à fait sûr si je suis dans la bonne direction.Est-il possible de modifier dynamiquement les autorisations de rôle et de générer les sitemap/menus appropriés dans ASP.NET?

Voici mon problème:

J'ai un site Web public (à savoir sur Internet) qui permettra à tout utilisateur de se connecter à. Le site Web sera développé à l'aide des formulaires Web ASP.net. Ces utilisateurs peuvent créer d'autres utilisateurs et attribuer à ces utilisateurs différents rôles.

Différents rôles ont des restrictions différentes et le menu est affiché de manière appropriée. Par exemple, un utilisateur agissant en tant qu'administrateur peut voir toutes les options de menu. Alors qu'un utilisateur limité ne verra que certains de ces éléments de menu.

Les utilisateurs de notre côté doivent avoir la possibilité de modifier les pages auxquelles certains rôles peuvent accéder. Par exemple, si Role1 peut faire la tâche X, nous aimerions pouvoir à un moment donné modifier le rôle 1 pour ne plus faire la tâche X. Cela se ferait en utilisant une application construite en interne.

Les types d'utilisateurs (rôles) doivent être sauvegardés dans la base de données. Les autorisations utilisateur (à quelles pages chaque type peut avoir accès) doivent également être sauvegardées dans la base de données.

Voici quelque chose que je pense à faire:

  1. Mettre en œuvre l'autorisation et l'authentification intégrée mis en place pour ASP.net en utilisant le fichier web.config
  2. Utilisez Sitemaps pour créer dynamiquement des menus/panure de la base de données

Je crois qu'il est possible de faire le second en utilisant des fournisseurs personnalisés (s'il vous plaît corrigez-moi si je me trompe). Mais je ne suis pas entièrement sûr s'il est possible de configurer le fichier web.config dynamiquement.

Je suppose que c'est vraiment plus d'une réponse oui/non, mais je voudrais juste m'assurer que je ne vais pas dans la mauvaise direction. J'utiliserai le framework VS2008 et .net 3.5.

Merci beaucoup.

Répondre

1

Oui, il est possible de faire ce que vous dites. Vous pouvez créer des sitemaps de façon dynamique à l'aide d'un SiteMapProvider personnalisé, voir cet article http://www.codeproject.com/KB/aspnet/dynamicsitemap.aspx.

Vous pouvez également modifier web.config à l'exécution en utilisant un XmlReader ou, si vous préférez, en le lisant simplement dans une chaîne et en analysant l'élément d'autorisation. Je l'avais mis dans un fichier séparé, bien que, en utilisant configSource:

< autorisation configSource = « auth.config »/>

Ensuite il vous suffit de modifier ce fichier et ne pas se soucier de chambouler le web .config