Bonjour,

Je suis en train de développer un CMS pour la gestion de sites internet.
L'objectif étant que les gestionnaires du site puissent créer librement leurs pages, et y intégrer les composants qu'ils désirent.

Une table dans la base de données contient la liste des pages, et pour chaque page, on a la possibilité de la marquer comme étant publique (accessible à tous) ou privée (uniquement accessible aux internautes connectés). J'ai intégré l'url-rewriting à mon CMS ; concrètement, j'ai donc créé un handler http qui, à chaque requete http, va récupérer la page dans ma table, et redirige l'internaute vers l'url adéquate. Je voudrais maintenant également gérer l'authentification, en fonction que l'on a marqué la page comme étant publique ou privée. comment gérer cela via la base de données à la place du fichier Web.config ? En gros, concernant l'authentification, dans le web config on a ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<authentication mode="Forms">
     <forms defaultUrl="PageDefault.aspx" loginUrl="PageLogin.aspx"/>
</authentication>
dans mon cas, le gestionnaire du site a la possibilité de choisir lui-même la page login, parmi les pages qu'il a ajoutées.
Est-ce donc possible de modifier ces paramètres en code-behind ?
Est-ce donc possible de choisir la page vers laquelle rediriger l'internaute lorsqu'on utilise la fonction "FormsAuthentication.RedirectToLoginPage()"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<location path="PagePrivee.aspx">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
</location>
normalement, chaque page "privée" doit être marquée ainsi dans le fichier web.config. L'idée ici est d'éviter de devoir marquer chaque page ainsi dans le web config, afin de ne pas agrandir indéfiniment la taille du web.config dans le cas d'un site à plusieurs dizaines ou centaines de pages. L'objectif est surtout de pouvoir gérer cela dynamiquement, et ne pas devoir aller modifier manuellement le fichier web.config à chaque fois que le gestionnaire du site souhaite ajouter une page privée

Dès lors, quelle serait la meilleure solution pour simuler ces comportements via programmation ?

>> définir soi-même en code-behind une page Login
>> rediriger l'internaute qui souhaite accéder à une page privée vers la page login définie

Peut-on gérer l'authentification également via des handlers ou modules http ?

Merci pour vos astuces.