Membership.IsApproved无法设置为true [英] Membership.IsApproved cannot set to true
问题描述
我在网页中使用了两个会员提供商,错误说
对象引用没有设置为对象的实例。
来设置IsApproved =真正。
我发现问题是provider =MySQLMembershipProvider,它应该是MySQLMembershipProvider2。但即使我已将其设置为MySQLMembershipProvider2,但它仍然没有任何效果。请给我一些建议。
以下是我使用的代码:
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 [] {< span class =code-string> ClassAssistant});
MembershipProvider member = Membership.Providers [ MySQLMembershipProvider2];
String usern = CreateUserWizard1.UserName;
MembershipUser usr = member.GetUser( usern,假跨度>);
usr.IsApproved = true ;
Membership.UpdateUser(usr);
}
String usern = CreateUserWizard1.UserName;
MembershipUser usr = member.GetUser( usern, false );
该行正在寻找硬编码用户名usern,我在认为你的意思是使用上面的行,没有引号()
制作:
字符串 usern = CreateUserWizard1.UserName;
MembershipUser usr = member.GetUser(usern, false );
我会在处理它之前在usr周围添加一张支票,类似于< br $>
MembershipUser usr = member.GetUser(usern, false );
if (usr!= null )
{
// 然后批准
usr.IsApprov ed = true ;
Membership.UpdateUser(usr);
}
其他
{ // 无法获取用户,记录或显示错误
}
-DB
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:
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);
}
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:
String usern = CreateUserWizard1.UserName; MembershipUser usr = member.GetUser(usern,false);
I would personally add a check around usr before dealing with it, something like
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
这篇关于Membership.IsApproved无法设置为true的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!