2010-01-31 1 views
1

Je reçois l'erreur:ASP.net C#. Méthode Membership.CreateUser - absence de réfrence ou d'assemblage. empilés

Erreur 1 Le type ou espace de noms name'CreateUser 'n'existe pas dans le namespace'LocalGarageFinder.Membership' (vous manque une référence d'assemblage?)

J'ai vérifié les espaces de noms. tout en. Security.Web.Security; Que manque-t-il? aide s'il vous plaît

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 

using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Xml.Linq; 
using System.Web.Security; 

namespace LocalGarageFinder.Membership 
{ 
    public partial class CreatingUserAccounts : System.Web.UI.Page 
    { 
     const string passwordQuestion = "What is your favorite color"; 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) SecurityQuestion.Text = passwordQuestion; 
     } 

     protected void CreateAccountButton_Click(object sender, EventArgs e) 
     { 
      MembershipCreateStatus createStatus; 
      MembershipUser newUser = Membership.CreateUser(Username.Text, Password.Text, Email.Text, passwordQuestion, SecurityAnswer.Text, true, out createStatus); 

      switch (createStatus) 
      { case MembershipCreateStatus.Success: CreateAccountResults.Text = "The user account was successfully created!"; 
        break; 
       case MembershipCreateStatus.DuplicateUserName: CreateAccountResults.Text = "There already exists a user with this username."; 
        break; 
       case MembershipCreateStatus.DuplicateEmail: CreateAccountResults.Text = "There already exists a user with this email address."; 
        break; 
       case MembershipCreateStatus.InvalidEmail: CreateAccountResults.Text = "There email address you provided in invalid."; 
        break; 
      case MembershipCreateStatus.InvalidAnswer: CreateAccountResults.Text = "There security answer was invalid."; 
        break; 
      case MembershipCreateStatus.InvalidPassword: CreateAccountResults.Text = "The password you provided is invalid. It must be seven characters long and have at least one non-alphanumeric character."; 
        break; 
      default: CreateAccountResults.Text = "There was an unknown error; the user account was NOT created."; 
       break; } } 
} 
} 

Répondre

1

Essayez MembershipUser newUser = System.Web.Security.Membership.CreateUser(...). Il semble que le compilateur regarde dans LocalGarageFinder.Membership, où il n'y a en effet pas de type CreateUser.

+0

Merci! ça fonctionne de cette façon;) – Alex

1

Vous avez une collision d'espace de nom qui se passe ici. J'imagine que vous essayez d'accéder au fournisseur d'appartenance asp.net avec votre appel à Membership.CreateUser mais il ne peut pas le trouver car il ne fait que regarder dans votre espace de noms LocalGarageFinder.Membership.

Si vous ne pouvez pas modifier votre espace de nom avec quelque chose d'un peu plus facile à utiliser, vous pouvez préfixer votre appel au fournisseur d'appartenances avec son espace de noms complet.

Cela va changer votre appel à:

MembershipUser newUser = System.Web.Security.Membership.CreateUser(Username.Text, Password.Text, Email.Text, passwordQuestion, SecurityAnswer.Text, true, out createStatus); 
+0

merci! ça marche, mais comment pourrais-je le faire fonctionner correctement? comment changer mon espace de noms? ceci est seulement un tutoriel, j'apprends. et cette classe a été créée par VS – Alex

Questions connexes