IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

authentification et base de données.


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut authentification et base de données.
    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.

  2. #2
    CUCARACHA
    Invité(e)
    Par défaut
    Salut,

    J'ai peur que tu n'ais pas bien saisi le fonctionnement des membership. Dans ton cas, il suffit que la page de ton CMS soit simplement dans le bon répertoire.
    Dans le cadre d'un CMS (c'est un peu ma spécialité) tu ne devrais avoir la structure suivante:

    /
    /Public
    Default.aspx (Toutes tes pages de contenu)
    /Private
    Default.aspx
    EditionStructure.aspx (c'est là que tu définis les arborescences des sites qui seront ensuite répercutées par l'url rewriting)
    EditionContenu.aspx
    EditionMedia.aspx
    EditionUtilisateurs.aspx
    AutreFonctionnalite001.aspx
    AutreFonctionnalite00x.aspx
    /Administration
    Default.aspx
    FonctionAdmin01.aspx
    FonctionAdmin0x.aspx


    Une Master page globale
    Une Master page imbriquée pour le private
    Une Master page indépendante pour l'Administration (voir même une application indépendante pour l'admin).

    Dans ce cas, c'est la page physique accédée (quelque soit son URL qui est prise en compte par le membership)

    ++

    Laurent

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    Bonjour Laurent,

    je n'ai pas bien saisi le principe des pages suivantes :

    EditionStructure.aspx (c'est là que tu définis les arborescences des sites qui seront ensuite répercutées par l'url rewriting)
    EditionContenu.aspx
    EditionMedia.aspx
    EditionUtilisateurs.aspx
    AutreFonctionnalite001.aspx
    AutreFonctionnalite00x.aspx
    Enfin, dans mon cas, le principe est le suivant, j'ai un répertoire TEMPLATES contenant les différents templates desquels mes différentes pages peuvent dériver... il suffirait donc, si j'ai bien compris, que je crée les répertoires suivants :

    > PRIVATE > TEMPLATES
    > PUBLIC > TEMPLATES

    à chaque fois que je crée un nouveau template, je le duplique dans les 2 répertoires, et lorsque je vais rechercher une page dans ma base de données, si elle est marquée comme étant "private", je lui assigne le template adéquat du répertoire "PRIVATE", sinon, je lui assigne le template du répertoire "PUBLIC"

    Euh, encore 2 questions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <location path="PRIVATE/*.aspx">
        <system.web>
          <authorization>
            <deny users="?"/>
          </authorization>
        </system.web>
    </location>
    1. ce code fonctionne-t-il, afin d'éviter de devoir inscrire chaque nouveau template dans le fichier web.config ?

    2. Dans le même ordre d'idée, le gestionnaire du site a la possibilité de choisir la page d'accueil de son site... mais quelle est la meilleure technique pour rediriger l'internaute vers la bonne page d'accueil, tout en évitant que le référencement naturel n'empatisse pas ? Car il parrait que les "redirections" ne sont pas les meilleurs amis d'un référencement efficace... ?

    Merci encore pour les conseils.

  4. #4
    CUCARACHA
    Invité(e)
    Par défaut
    Le principe du CMS est justement de dématérialiser les fichiers, tu ne dois pas en créer, tes templates doivent être des lignes dans une table et ce sont tes pages qui reconstituent le document (X)HTML qui sera interprété par le navigateur du client.

    En plus, il y a les Master Pages et les Inner Master Pages qui pourraient avantageusement remplacer tes templates (si j'ai bien compris).

    ++

    Laurent

  5. #5
    CUCARACHA
    Invité(e)
    Par défaut
    Les pages

    EditionStructure.aspx (c'est là que tu définis les arborescences des sites qui seront ensuite répercutées par l'url rewriting)
    EditionContenu.aspx
    EditionMedia.aspx
    EditionUtilisateurs.aspx
    AutreFonctionnalite001.aspx
    AutreFonctionnalite00x.aspx

    Sont des applications, elles permettent d'agir sur le contenu, elles peuvent donc être traitées à part les unes des autres.

    En revanche, côté front office (public) le rôle de ta page ne doit être que d'afficher des contenus (si tu te lances dans des pages interactives ça va compliquer grave)
    Ces pages peuvent mettre en oeuvre des composants des bibliothèques Yahoo et/ou Google par exemple.

    ++

    Laurent

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    L'objectif de mes templates aspx est donc d'y placer des "containers" (par exemple des "panels", ou alors des "contentplaceholder" si masterpages). et puis lorsque l'internaute demande une page, le template est appelé, et on charge dans les containers les composants prévus pour la page appelée.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/12/2014, 17h45
  2. Authentification JavaEE : Base de données ou LDAP ?
    Par tails dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 09/09/2014, 22h15
  3. Authentification à une base de données distante
    Par h3llmo dans le forum Bases de données
    Réponses: 16
    Dernier message: 08/12/2009, 18h18
  4. formulaire authentification et base de données
    Par dreamkill dans le forum C#
    Réponses: 1
    Dernier message: 15/06/2009, 14h44
  5. Réponses: 1
    Dernier message: 25/01/2006, 21h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo