views:

437

answers:

2

i am getting error :

Error 1 The type or namespace name'CreateUser' does not exist in the namespace'LocalGarageFinder.Membership' (are you missing an assembly reference?)

I have checked the namespaces. all in. Security.Web.Security; what is missing? help please

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; } }
}
}
+1  A: 

You've got a namespace collision going on here. I imagine you're trying to access the asp.net membership provider with your call to Membership.CreateUser but it can't find that because it's just looking in your LocalGarageFinder.Membership namespace.

If you can't change your namespace to something a bit easier to work with, you can prefix your call to the membership provider with its full namespace.

This will change your call to:

MembershipUser newUser = System.Web.Security.Membership.CreateUser(Username.Text, Password.Text, Email.Text, passwordQuestion, SecurityAnswer.Text, true, out createStatus); 
Chris Stavropoulos
thanks! it works, but how could I make it work straight? how to change my namespace? this is only tutorial, i am learning. and this class was created by VS
Alex
+1  A: 

Try MembershipUser newUser = System.Web.Security.Membership.CreateUser(...). It seems the compiler is looking in LocalGarageFinder.Membership, where there is indeed no CreateUser type.

mnemosyn
Thank you! it works this way;)
Alex