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

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    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 du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    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 du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    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.

  7. #7
    CUCARACHA
    Invité(e)
    Par défaut
    Je vois ce que tu veux faire, c'est le même principe que sharepoint. Je pense qu'il faut que tu réfléchisse encore un peu avant de coder.

    Regarde comment on instancie dynamiquement des contrôles.

    ++

    Laurent

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    j'ai déjà regardé... et même testé... et même que ca fonctionne très bien

    J'utilise la reflection pour aller rechercher mes controles en base de données et les instancier, c'est OK à ce point de vue.

    Merci pour les conseils.

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    Re...

    Je me permets quand-même de revenir à la question de base, je ne sais toujours pas s'il est possible de redéfinir via le code le "LoginUrl" de l'authentification par formulaire ? Existe-t-il une classe permettant de configurer le Web.Config ?

    ou peut-être peut-on directement agir sur le Web.Config de la même manière qu'on irait modifier un fichier xml, mais pour des raisons de sécurité, est-ce recommandé ?

    Nico

  10. #10
    CUCARACHA
    Invité(e)
    Par défaut
    Tu ne dois pas modifier le web.config sous peine de faire redémarrer ton application (perte de toutes les sessions).

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    ok, je vais donc devoir trouver une autre solution alors
    Merci

  12. #12
    CUCARACHA
    Invité(e)
    Par défaut
    Réussir a créer un véritable CMS ça implique une grande maîtrise du développement web... Il faut beaucoup gamberger avant d'agir...

    ++

    Laurent

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    oui oui, ca fait déjà quelques temps que je gamberge, et je n'ai pas encore fini, mais petit à petit, l'oiseau fait son nid de toute facon, mon objectif n'est pas de concurrencer "les grands", mais de proposer une solution plus simple aux clients, répondant exactement à ce dont ils ont besoin, et qui évidemment sera également sensée me faciliter grandement la tâche de développement... d'où optimisation du temps, et par conséquent des coûts.

  14. #14
    CUCARACHA
    Invité(e)
    Par défaut
    Perso je gamberge là dessus depuis 6 ans, j'ai créé mon propre CMS en 2004 et 5 CMS pour des clients plus tard.

    ++

    Laurent

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    je sais donc maintenant à qui m'adresser si j'ai besoin de conseils en la matière

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    et avec le recul, question existentielle... content de t'être lancé dans la création de ton propre CMS ? cela t'apporte, je suppose, un plus par rapport aux CMS tout prêts que l'on pourrait trouver sur le marché ?
    (si tu pouvais répondre "OUI", cela m'encouragerait )

  17. #17
    CUCARACHA
    Invité(e)
    Par défaut
    Disons que je ne savais pas dans quoi je m'embarquait mais en 2004 j'avais développé un des premiers CMS avec edition WYSIWYG.

    J'ai du le faire migrer successivement de SQL Server 2000 à 2005 puis à 2008, j'ai aussi dû passer de IIS 6 à 7.

    Je me suis fait hacker deux fois. J'ai dû passer la totalité des entrées sorties de base de données dans des procédures stockées.

    Maintenant quand je dois corriger un bug, j'ai mal à la tête parceque c'est de l'ASP 3 et ASP.net 1.1 C# alors que maintenant je ne fais plus que de l'ASP.net C# 3.5.

    Je suis en train de développer une version ultime mais c'est beaucoup de travail.

    ++

    Laurent

  18. #18
    CUCARACHA
    Invité(e)
    Par défaut Exemple
    http://www.innovacall.com est l'ancien client
    http://www.innovacall.com/accueil.html est le client intermédiaire sans frame que j'ai presque fini

    pour la dernière version du client, j'hésite encore entre MVC2 ou ASP.net 3.4 (voir 4).

    La logique voudrait que j'utilise MVC2 pour le client et ASP.net pour la gestion des sites et l'administration de la plateforme.

    Il faut connaitre :
    ASP.net
    C#
    SQL Server
    CSS
    XHTML
    AJAX
    Les bibliothèques clientes genre Google, Yahoo, Facebook,
    Les flux RSS
    les Google Site Map
    le référencement naturel
    le javascript
    et j'en oublie surement...

    Avec l'habitude, un CMS c'est entre 3 et 6 mois de dev à 4 personnes.

    Après tu peux faire plus simple, un site en dur avec juste un petit éditeur de contenu WYSIWYG dans les zones personnalisables.
    ++

    Laurent

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 65
    Points
    65
    Par défaut
    Mais donc pour répondre à ma question, je présume que si tu te relances dans un développement de CMS sur mesure, c'est que OUI, ca apporte des plus par rapport à une solution toute prête sur le marché...

  20. #20
    CUCARACHA
    Invité(e)
    Par défaut
    C'est un produit très complet. Il permet d'implémenter des fonctionnalités spécifiques à un métier et le déployer pour plusieurs clients. Par exemple, l'année dernière j'ai créé un dispositif d'inscription à une course à pied avec paiement en ligne, demain je peux utiliser la même brique personnalisée pour un autre client qui organiserait des courses de kart par exemple.

    Chaque développement spécifique est capitalisé.

    C'est une question de point de vue, pendant longtemps, mon CMS pulvérisait mes concurrents, n'ayant pas levé de fonds pour ce projet, il m'est difficile tout seul de lutter contre les Vignette, Magnolia, Sharepoint et autre Office Live mais bon... J'ai encore des clients sur mon outils et ils n'en changeraient pour rien au monde car il est très convivial (selon eux).

    Un CMS bien gaulé (c'est à dire toute la plateforme multisites) ça peut se vendre en 15 et 100 k€ pièce quand même. Il y a donc une carotte au bout du chemin.

    La principale faiblesse de la version actuellement en prod est l'étanchéité entre les comptes des clients.

    Avec ASP.net 3.5 ça sera parfaitement géré, rien ne laissera présager qu'il y a plusieurs clients sur le même serveur.

    ++

    Laurent

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