Strategie authentification asp.net ajout champ dans table authentification [Résolu]

Messages postés
72
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
10 novembre 2008
- - Dernière réponse : quineman
Messages postés
72
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
10 novembre 2008
- 19 sept. 2006 à 10:17
Bonjour,
Je souhaite intégrer la classe identification sur mon nouveau site. Seulement, j'ai déjà une base client sur le site existant. Me conseillez vous d'ajouter des champs à l'une des tables d'authentification .NET (si oui laquelle : aspnet_Membership ou aspnet_Profile), ou me conseillez vous de conserver ma table client : J'utilise cette table a chaque fois que j'ai des informations de personne ou spécifique aux fonctionnalités de mon site. (et je met l'id_profile dans ma table client (en faisant une vérification sur le mail par exemple pour savoir si la personne existe déjà))
Par ailleurs, me conseillez vous de faire une classe pour l'ajout, la suppression et la mise à jour de des informations "non web"

Si un sujet sympa sur ce sujet existe quelque part, je suis preneur car je n'ai pas trouvé de chose un peu générale sur la gestion de base de donnée client (modéle dotNET de préférence) ...

Merci
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
3
Merci
Au hasard : http://gabe19.blogspot.com/2006/05/update-custom-membership-provider.html 

en faisant une recherche avec membershop provider tu trouveras. Ce que tu peux aussi faire c'est rajouter un ID dans le profile qui fait référence à un ID d'une autre table. Mais la premiere esolution est beaucoup plus propre.

<hr />Cyril - MVS - MCP

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 211 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jesusonline
Messages postés
72
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
10 novembre 2008
3
Merci
Voici quelques liens et mes favories pour votre personnalisation de provider. Une classe à été réaliser par un développeur de Microsoft (en C#)  et traduite  ensuite en VB.
Tout ça marche très bien. Je l'ai implémenter sur mon site est c'est relativement accessible. il faut juste créer une table supplémentaire pour vos informations personnel. Vous pouvez ensuite choisir entre 2 versions : une versions procedure stockée et une version SQL normal...
Voici les liens :
http://www.asp.net/sandbox/samp_profiles.aspx?tabindex=0&tabid=1
Traduction en VB : http://www.jbwebtech.net/Code/ProfileProvider/
Et le forum : http://forums.asp.net/2/1315026/ShowThread.aspx?Ajax_CallBack=true

BON DEVELOPPEMENT

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 211 internautes nous ont dit merci ce mois-ci

Commenter la réponse de quineman
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
0
Merci
Bonjour,


D'aprés ce que j'ai entendu il ne faut JAMAIS modifier les schémas de la base aspnet_membership ou aspnet_profile c'est vite galere ... :-/ donc la 2eme solution est le mieux si tu veux faire ca.


Pour ce qui est de classe tu peux customiser ton provider donc tu n'as pas besoin de refaire le monde ;-)





<hr />

Cyril - MVS - MCP
Commenter la réponse de jesusonline
Messages postés
72
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
10 novembre 2008
0
Merci
J'ai trouvé ça sur un blog (sorry pour l'auteur mais je préfére que son texte traine ici, au moins y'aura pas de probléme de lien un jour)

Vous le savez peut être, ASP .NET v2.0 propose un système d'identification, autorisation, etc. intégré. Il génère automatiquement une base de donnée SQL Server 2005 pour cela (il existe même des scripts pour utiliser SQL Server 2000).


Cette base de données contient des tables comme aspnet_Membership, aspnet_Profile, etc.


Donc sans écrire la moindre ligne de code, vous pouvez identifier, autoriser, etc. des utilisateurs de votre site.


En plus, si vous avez besoin d'ajouter des données spécifiques pour vos users, c'est super simple et s'effectue via le fichier de config.


Au hasard, imaginons un site web ou vous voulez stocker comme information spécifique pour vos users le nom de leur école et de leur pays. Dans le fichier de config, ajouter les lignes suivantes :





profile
>
     properties>
          addname= "s
chool"
type="
string"
/>
          addname="
country"
type="
string"
/>
     properties>
profile>
Et via GetPropertyValues, vous pouvez facilement obtenir ces informations.

MAIS ATTENTION, BEWARE, FAITES GAFFE : ces infos, elles sont stockées dans un champ de la base de données, dans un seul champ. C'est une sorte de pôt pourri.

Donc pour obtenir ces infos, il faut effectuer un certain travail. Effectuer des requêtes directement sur ces données est pratiquement impossible.

DONC, ne placez pas des données critiques dedans, créez votre propre provider dans ce cas.

Je ne sais pas pourquoi je dis ca aujourd'hui moi ;-)))






touvé sur = http://blogs.developpeur.org/richardc/archive/2005/12/20/15911.aspx
Commenter la réponse de quineman
Messages postés
72
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
10 novembre 2008
0
Merci
Je ne comprends pas ce qu'est customiser mon provider (une remarque ?, un lien ?)
Merci beaucoup à jesusonline pour son aide et ses remarques toujours dans le bon ton !
Commenter la réponse de quineman
Messages postés
72
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
10 novembre 2008
0
Merci
Pour bien distinguer ma base client (qui est somme toute assez grosse) et la base web, je customize donc ma classe membership provider en ajoutant un champs id à la table user (c'est bien cette table qui est la principale dans le modele dotnet?).
Ensuite je vais ajouter quelques méthodes pour faire les liens entre ma table client et ma table user :
Par exemple je vais vérifier si le mail est dans la table client (si c'est le cas je mes l'id dans la table user (en updatant les infos de la table client) sinon je fais un insert dans la table client)
Dans un deuxième temps, je vais analyser les fonctionnalités proposées sur le site et ajouter d'autre champs dans la table users si ces fonctionnalités sont uniquement utilisés par le site.
Pour finir j'Overrides toutes les méthodes utilisant la table users.
Dur dur la vie d'informaticien...
Commenter la réponse de quineman
Messages postés
72
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
10 novembre 2008
0
Merci
Je suis désolé d'insister mais Une dernière question : Sans modifier le schéma de donnée, peut on ajouter des champs style adresse / nom / prenom et à quelle table ?
Car en fait je pense que je vais adapter la méthode createUser de la classe memberShip...
Par contre si je veux vraiment réster dans l'esprit de la classe, pensez vous qu'il faut que je redéfinisse la classe membershipUser afin de pouvoir utiliser ajouter mes informations et utiliser les méthodes updateUser, etc ?
En effet, je ne souhaite pas vraiment utiliser la customization via le fichier de configuration pour que mes informations de personne soit pele mele dans un champ commun...
Commenter la réponse de quineman