2015-04-26 6 views
1

MembershipUser newUser = Membership.GetUser(CreateUserWizard1.UserName);Membership.GetUser -> L'appartenance ne contient pas de définition pour 'GetUser'. Qu'ai-je manqué?

je reçois une ligne rouge sous GetUser et quand je passe la souris dessus, un message apparaît:

L'adhésion ne contient pas de définition pour 'GetUser'

Quand je cliquez sur le petit tiret ci-dessous GetUser Je reçois:

Générer la méthode stub pour 'GetUser' dans 'M embauche

Qu'est-ce que j'ai manqué?

ASPX:

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" OnCreatedUser="CreateUserWizard1_CreatedUser" > 
    <WizardSteps> 
     <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> 
     </asp:CreateUserWizardStep> 
     <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> 
     </asp:CompleteWizardStep> 
    </WizardSteps> 
</asp:CreateUserWizard> 

code derrière:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.Security; 

public partial class SignUp : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) 
    { 
     MembershipUser newUser = Membership.GetUser(CreateUserWizard1.UserName); 
     Guid newUserId = (Guid)newUser.ProviderUserKey; 
    } 
} 
+0

Avez-vous créé votre propre classe, ou un espace de noms peut-être, qui est aussi appelé " Adhésion"? Si vous passez la souris sur "Membership", cela signifie-t-il que la classe est "System.Web.Security.Membership"? –

+0

@GrantWinney, je pense que je l'ai eu de votre commentaire. J'ai une classe appelée 'Membership' mais c'est une classe par défaut due à l'installation du paquet' Microsoft.AspNet.Providers'. Il y a donc un conflit entre ce que vous avez mentionné 'System.Web.Security.Membership' et celui du fournisseur. Merci. –

+0

Pas de problème. Si vous le comprenez, et que vous pensez que ce que vous trouvez pourrait aider quelqu'un d'autre un jour, n'hésitez pas à poster votre propre réponse. –

Répondre

2

Le problème est dû à l'existence d'une classe avec le même nom Membership. Celui déjà défini n'a pas de définition pour la méthode GetUser.
Ce dont vous avez réellement besoin pour que le code fonctionne, c'est d'appeler l'espace de nom complet de la classe Membership pour différencier les deux; l'alreadey en a défini un et celui qui était destiné. Celui prévu peut être désigné par: System.Web.Security.Membership

Au lieu de cela: MembershipUser newUser = Membership.GetUser(CreateUserWizard1.UserName);

Utilisez ceci:
MembershipUser newUser = System.Web.Security.Membership.GetUser(CreateUserWizard1.UserName);