|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Membre habitué
![]() Inscription : mars 2007 Messages : 114 ![]() |
Hello à tous,
J'utilise PostGre comme base de donnée et je voulais pouvoir utiliser les contrôles .NET de gestion d'utilisateur. J'ai donc du écrire deux classes Provider (NpgsqlMembershipProvider et NpgsqlRoleProvider) qui surchagent les classes MembershipProvider et RoleProvider. Ces classes utilisent la librairie npsql installée lors de l'installation de PostGre. Je commence par la classe NpgsqlMembershipProvider. Pour commencer il est utile de lire la documentation sur la classe MembershipProvider. Et de jeter un oeil sur l'exemple d'implémentation trouvé ici. Après il m'as suffit de copier le code de l'exemple et de remplacer tous les accès base en utilisant les api npgsql (fichier joint NpgsqlMembershipProvider). De la même façon et à partir de la documentation de la classe RoleProvider et de l'exemple on obtient la classe NpgsqlRoleProvider (fichier joint NpgsqlRoleProvider). Il n'y a plus qu'a mettre à jour le web.config pour utiliser nos classes D'abord la chaîne de connection à la BDD : Code :
Code :
Code :
Code :
<machineKey validationKey="maclef" validation="SHA1"/> Code :
avec les composants de l'onglets "Connexion" de VS2005.Logiquement si les classes NpgsqlMembershipProvider et NpgsqlRoleProvider sont compilées dans une dll avec nom fort cela devrait même pouvoir être gèrer via la console d'administration de VS2005 (pas tester). J'espère que cela vous sera utile Dès que j'ai le temps et que j'ai compris comment faire j'écrirai les classe qui permettent de surcharger la gestion du profil (via le web.config) pour PostGre. Mais la par contre la documentation expliquant cette surcharger est bcp plus hardu à lire |
||||||||
|
|
00
|
|
|
#2 | ||
![]() ![]() Étudiant Inscription : novembre 2003 Messages : 3 831 ![]() |
![]() Cela pourrait être une bonne entrée pour la page sources Citation:
Citation:
__________________
Comment rejoindre la rédaction de www.developpez.com ? Améliorer vos posts en faisant une correction orthographique"Tu as tort d'abuser de ma patience" Sokar |
||
|
|
00
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() |
Citation:
J'ai expliqué en quelques mots ceci ici: http://ditch.developpez.com/aspnet2/...pprovider/#LVI Peut être cela peut être utile comme base très succincte
__________________
Didier Danse Most Valuable Profesionnal SharePoint Microsoft Certified Application Developer Mes articles sur developpez.com Mon site perso |
|
|
00
|
|
|
#5 | ||||||||||
|
Membre habitué
![]() Inscription : mars 2007 Messages : 114 ![]() |
Tiens en relisant mon premier post je vois que j'ai oublié un truc
dans ces deux sections : Code :
Code :
Code :
éh éh éh ... intéressant non ? Cela signifie que vous pouvez utiliser la même BDD pour gérer les utilisateurs de différent site pour le site 1 : Code :
Code :
Mieux si les deux site utilise le même applicationName, alors là (et c'est l'extase Bref c'est rigolo et ça ouvre beaucoup de possibilités |
||||||||||
|
|
00
|
|
|
#6 | ||
|
Membre habitué
![]() Inscription : mars 2007 Messages : 114 ![]() |
Pour ceux que cela pourraient intéresser, voici le code de la fonction qui m'a permis de tester mes deux classes
Code :
|
||
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() ![]() Florent DiedlerÉtudiant Inscription : août 2005 Messages : 3 781 ![]() |
Salut, pourrais tu envoyer un zip avec ta source complète ?
__________________
Qui ne tente rien n'a rien ! Ce qui ne nous tue pas nous rends plus fort !! Mon projet ZELDA en C++/Allegro http://www.tutoworld.com - Le Forum - Mes ressources Dotnet (cours, sources, tutos) -------------------------------------------- + + = ![]() Ne pas oublier le Tag !
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Inscription : mars 2007 Messages : 114 ![]() |
je suis en train de bosser sur la surcharge de la classe profile provider pour npgsql
je te ferai un lot groupé. Sinon le code du membreshipprovider et du role provider sont attaché au premier post |
|
|
00
|
|
|
#9 | |
|
Expert Confirmé Sénior
![]() ![]() Florent DiedlerÉtudiant Inscription : août 2005 Messages : 3 781 ![]() |
Citation:
__________________
Qui ne tente rien n'a rien ! Ce qui ne nous tue pas nous rends plus fort !! Mon projet ZELDA en C++/Allegro http://www.tutoworld.com - Le Forum - Mes ressources Dotnet (cours, sources, tutos) -------------------------------------------- + + = ![]() Ne pas oublier le Tag !
|
|
|
00
|
|
|
#10 | ||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 112 ![]() |
Salut à toutes et à tous,
Tout d'abord merci à dinguot pour son tuto tellement clair que même moi je l'ai compris. J'ai toutefois un petit problème que mon niveau en ASP et c# ne me permet pas de résoudre sans votre aide. J'ai tout d'abord créé un bouton sur une page et un label nommé Resultm. Derrière le click du bouton le code de test du post #6. La réponse est "c'est tout bon J'avais du toutefois placer le passwordFormat à clear pour une raison de clé. J'ai placé une CreateUserWizard sur ma page et j'ai essayé de créer un user. Lorsque je clique sur le bouton de création du user, je reçois le message suivant : Citation:
Citation:
Quel est le problème, et comment le résoudre ? Merci de vos z'avis z'avisés, Jean-Marc
__________________
Il n'y a pas de problèmes. Il n'y a que des solutions. Malheureusement, elles sont parfois un peu dur à trouver ... Aucune touche n'a été maltraitée pour réaliser ce texte. |
||
|
|
00
|
|
|
#11 |
![]() ![]() ![]() ![]() Thomas LevesqueDéveloppeur .NET Inscription : février 2004 Messages : 17 770 ![]() |
C'est cool quand des gens envoient des trucs utiles au lieu de poser des questions
Merci à toi dinguot J'ajoute ça à mes favoris, je sens que ça resservira...
__________________
Pas de questions techniques par MP ! Le forum est là pour ça... |
|
00
|
|
|
#12 | ||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 112 ![]() |
J'ai fini par résoudre le problème du codage du mot de passe, qui ne venait pas du fait que le passwordFormat était à Hashed.
Dans le web.config j'ai mis le requiresQuestionAnswer à false. Dans le CreateUserWizard, les champs de question et de réponse n'apparaissaient donc plus, or si le passwordFormat est à Hashed, le mot de passe ET la réponse à la question sont encodés. Comme la réponse est donc à null, Elle ne peut forcément pas être encodée. En ajoutant juste un if (password != null) pour donner ceci dans le NpgsqlMembershipProvider.cs Code :
Ce ne sera pas un problème pour le champs du mot de passe qui ne sera jamais null, puisqu'il y a un RequiredFieldValidator intégré dans le Wizard de sorte que le mot de passe ne soit pas null. Jean-Marc
__________________
Il n'y a pas de problèmes. Il n'y a que des solutions. Malheureusement, elles sont parfois un peu dur à trouver ... Aucune touche n'a été maltraitée pour réaliser ce texte. |
||
|
|
00
|
|
|
#13 |
|
Membre habitué
![]() Inscription : mars 2007 Messages : 114 ![]() |
oulala 5 ans déjà que j'ai écris cette étude
depuis le temps il existe une dll complète et plutôt pas mal pour postgre sql. elle se nomme npgsql. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com