2010-05-11 5 views
1

J'ai été chargé de migrer un site Web ASP.NET 2.0 mature vers NHibernate, Mono et MySQL ou postgres. Je suis un peu confus comme la façon dont le fournisseur d'adhésion salit les mots de passe. Si je fais le changement et utilise le fournisseur d'appartenance MySQL (outlined in this question) ou AspSqlProvider, les utilisateurs existants pourront-ils se connecter?Utilisation du fournisseur d'appartenance MySQL ASP.NET avec des utilisateurs existants

Je suppose qu'il serait plus facile pour moi de demander: Comment diable ai-je accès à la clé de chiffrement utilisée par le fournisseur d'adhésion ASP.NET qui sépare les mots de passe pour que je puisse utiliser le même dans un tiers fournisseur?

Répondre

1

Combien d'utilisateurs parlez-vous de ce site? Est-il accessible au public, ou quelque chose utilisé dans un réseau local d'entreprise?

Le transfert de votre base de données d'adhésion existante vers le schéma généré par le fournisseur MySQL pourrait devenir intéressant. Je ne suis même pas sûr à quel point les schémas de table qu'ils utilisent sont similaires, même si j'espère qu'ils sont assez proches.

Si le nombre d'utilisateurs est relativement faible, je vous demanderais fortement de forcer la réinitialisation du mot de passe lors du passage au nouveau système.

modifier que vous avez vu ajouté postgres pendant que je tapais - si votre choix de base de données est encore en l'air, il peut être plus facile d'utiliser un fournisseur basé ORM qui vous offre un peu de portabilité (et un comportement cohérent) Si j'utilisais nhibernate, je cherchais récemment un fournisseur d'appartenance nhibernate et j'ai fini par choisir celui-ci: Fluent NHibernate Membership Provider (CodeProject). Je l'ai eu à travailler pour moi avec un minimum de modification, mais c'est pour un projet greenfield sans ces préoccupations. Il est sur mono cependant :)

trouvé: Membership Providers - voir la section "DataSchema", table aspnet_Membership. On dirait que l'obtention du sel ne sera pas un problème, donc vous devriez être en mesure de faire fonctionner ce mot de passe sans réinitialisation.

+0

Réinitialiser les mots de passe est un briseur d'affaire :) C'était aussi ma première pensée, mais c'est une erreur pour le client. Le site est accessible au public. – ScottBelchak

+0

J'aurais aussi dû mentionner que nous sommes en train de migrer vers nHibernate et de nous éloigner des procédures stockées. Par conséquent, la suppression du fournisseur d'appartenance asp.net (procs stockés) – ScottBelchak

+0

Voir la dernière ligne que j'ai ajouté - semble que vous pouvez récupérer les sels de la table aspnet_Membership de sorte que vous devriez être en mesure de retirer ceci sans réinitialisation du mot de passe. – AlexCuse

Questions connexes