Membership.IsApproved无法设置为true [英] Membership.IsApproved cannot set to true

查看:92
本文介绍了Membership.IsApproved无法设置为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆