2010-12-06 26 views
1

J'ai un site Web d'administration - dont les utilisateurs devraient être en mesure de modifier les utilisateurs d'un site public. Cela signifie que le site d'administration dispose d'un fournisseur d'appartenances valide, mais je souhaite pouvoir accéder/modifier les membres d'un autre site (et donc ApplicationName).Créer un utilisateur dans un autre Membership.ApplicationName

Nous avons d'abord pensé à définir ApplicationName sur l'appartenance statique - mais cela semble être une mauvaise idée selon les réponses ici: Changing Membership.ApplicationName in code - thread safety. La deuxième pensée était de dupliquer l'entrée MembershipProvider à web.config - maintenant je peux faire WebSiteMembershipProvider = Membership.Providers ("WebsiteSqlMembershipProvider") - mais je ne peux pas maintenant me rendre à un objet 'Membership' qui me permettra (par exemple) d'appeler la méthode standard 'CreateUser'.

J'ai essayé WebSiteMembershipProvider.CreateUser - mais il faut charger plus de paramètres, et ne semble pas faire quoi que ce soit si j'y ajoute des valeurs.

Suis-je près d'ici? Ou ai-je besoin d'une approche différente? Il y a toujours des procédures stockées du SqlProvider, je suppose ...

+0

Problème était que vous ne pouvez pas utiliser la chaîne vide pour la question et la réponse mot de passe - en utilisant null fonctionne très bien. –

Répondre

1

Je l'ai utilisé quelque chose comme ceci:

var _provider = Membership.Providers["WebsiteSqlMembershipProvider"]; 
_provider.CreateUser(userName, password, email, null, null, true, null, out status); 

HTH.

+0

et @Greg - Heureux de voir que mon approche était correcte - et le problème semblait être simplement qu'il y ait une vérification de chaîne vide pour la question et la réponse du mot de passe. "" ne fonctionne pas mais null le fait. J'accepte cette réponse comme c'était la première fois. J'aurais dû en faire d'autres avant de le demander, vraiment! –

+0

Bon à savoir que 'null' fonctionne, avait le même problème à l'époque. Vous pouvez voir comment Authorization est implémentée dans le template MVC par défaut pour avoir des idées sur la façon de gérer les erreurs, et utiliser la variable 'status' pour donner un feedback à l'utilisateur au cas où quelque chose se produirait (ie mot de passe non conforme longueur minimale ou règles regex définies dans la configuration du fournisseur). – CGK

0

mais il faut une charge plusieurs paramètres

Pass nulls

MembershipCreateStatus status; 
MembershipUser u = CreateUser(username, password, email,null,null,true, out status); 

et ne semble pas faire quoi que ce soit si je poke certaines valeurs en elle.

Il devrait. Pourriez-vous poster la section web.config appropriée?