【问题标题】:C# asp.net Membership.Getuser() always gets nullC# asp.net Membership.Getuser() 总是为空
【发布时间】:2014-11-16 19:42:50
【问题描述】:

用户使用电子邮件链接激活帐户后,我在激活页面中有以下代码。我收到“newUser.IsApproved = true;”行的“对象引用未设置为对象的实例”错误。 我检查 userId 字符串,它获取用户 ID 字符串并且字符串不为空。Membership.Getuser() 总是为 null ,任何人都可以帮助我吗?

    //request for signed user UserId
    Guid activationCode = new Guid(Request.QueryString["ActivationCode"]);
    string userId = "";

    string ConnectionString = ConfigurationManager.AppSettings["myConnectionString"];
    try
    {
        using (SqlConnection sqlConnection = new SqlConnection(ConnectionString))
        {
            SqlCommand sqlCommand = new SqlCommand("SELECT user_id FROM ActivationCode WHERE activation_code LIKE '%" + activationCode + "%'", sqlConnection);
            sqlConnection.Open();
            SqlDataReader userIdRdr;
            userIdRdr = sqlCommand.ExecuteReader();
            while (userIdRdr.Read())
            {
                userId = userIdRdr["user_id"].ToString();
            }
            sqlConnection.Close();

            MembershipUser newUser = Membership.GetUser(userId);
            //activate signed user
            newUser.IsApproved = true;
            Membership.UpdateUser(newUser);
        }
    }

【问题讨论】:

  • 您使用的是什么会员服务提供商?你能展示一下它的配置吗?
  • 我使用的是默认的。
  • 您确定会员配置正确吗?我的意思是其他页面可以正常工作吗?
  • 是的。所有注册都运行良好。在通过电子邮件链接提供激活码后,我正在尝试激活帐户。我还可以看到用户已添加到数据库中,并且 isActive 字段为 false。

标签: c# asp.net membership-provider


【解决方案1】:

知道了!!!

Guid guid = new Guid(userId);
MembershipUser newUser = Membership.GetUser(guid);   
newUser.IsApproved = true;
Membership.UpdateUser(newUser);

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 2015-09-21
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多