Click here to Skip to main content
15,868,141 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I use two membership provider in a webpage, an error said
"Object reference not set to an instance of an object."
when come to setting IsApproved=true.
I find out the problem is the provider="MySQLMembershipProvider", it should be "MySQLMembershipProvider2". But even I already set it to "MySQLMembershipProvider2", but it still don't have any effect. Please give me some advise.

Here is the code behind I use:
C#
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
 
    CreateUserWizard1.MembershipProvider = "MySQLMembershipProvider2";
    ProfileCommon pc = new ProfileCommon();
    pc.Initialize(CreateUserWizard1.UserName.ToString(), true);
    pc.Year = ddlYear.SelectedItem.Text;
    pc.Area = ddlArea.SelectedItem.Value;
    pc.Class = ddlClass.SelectedItem.Value;
    pc.Language = ddlLanguage.SelectedItem.Value;
    pc.Section = ddlSection.SelectedItem.Value;
    pc.ClassName = ddlTemplate.SelectedItem.Value;
    pc.Save();
    RoleProvider Role = Roles.Providers["MySQLRoleProvider2"];
    Role.AddUsersToRoles(new[] { CreateUserWizard1.UserName }, new[] { "ClassAssistant" });
    MembershipProvider member= Membership.Providers["MySQLMembershipProvider2"] ;
    String usern = CreateUserWizard1.UserName;
    MembershipUser usr = member.GetUser("usern",false);
    usr.IsApproved = true;
    Membership.UpdateUser(usr);
}
Posted

1 solution

C#
String usern = CreateUserWizard1.UserName;
MembershipUser usr = member.GetUser("usern",false);


The line is looking for a "hard coded" user name "usern" which I think you meant for it to use the line above, without the quotes (")

Making it:

C#
String usern = CreateUserWizard1.UserName;
MembershipUser usr = member.GetUser(usern,false);


I would personally add a check around usr before dealing with it, something like

C#
MembershipUser usr = member.GetUser(usern,false);
if(usr != null) 
{ 
// then approve 
usr.IsApproved = true;
Membership.UpdateUser(usr);
}
else
{ // cannot get the user, log or show an error
}


-DB
 
Share this answer
 
Comments
Member 12115140 24-Nov-15 1:43am    
OK thank you very much

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900