0

嗨,我正在开发 Umbraco(6.1.2) 会员系统,在注册用户被重定向到带有 token_id 的身份验证页面后,我进行了登录、注册和身份验证页面

现在我想为此目的设置此用户批准我编写以下代码但有一些错误检查它

string uname = Request.QueryString["a"];
string uguid = Request.QueryString["b"];

MembershipUser thisUser = Membership.GetUser(uname);
if (thisUser != null)
{
if (!thisUser.IsApproved)
{
MemberProfile mp = MemberProfile.GetUserProfile(uname);
if (mp != null)
{
if (mp.AuthGuid == uguid)
{
thisUser.IsApproved = true;
Membership.UpdateUser(thisUser);
lblMessage.Text = "Thank you for confirming your email address";
}
else
{
lblMessage.Text = "Error confirming your email address";
}
}
else
{
lblMessage.Text = "Error confirming your email address";
}
}
else
{
lblMessage.Text = "Email address is already confirmed";
}
}

控制从这个条件“if (!thisUser.IsApproved)”返回到 else 条件

并且如果我反转它进入 if 块的条件并执行所有命令而没有错误但仍然没有将用户标记为已批准

请帮帮我

Refrence:在激活之前对新成员进行身份验证

4

1 回答 1

0

我也有批准的问题。

现在我只是在我的代码中使用它:

MembershipUser user = Membership.GetUser(nodeIdOrUsername);
user.IsApproved = true;
Membership.UpdateUser(user);

您可能还需要将属性添加到您的成员类型,例如。isApproved 然后将其添加到 web.config 中配置文件 > 属性部分的提供程序:

<add name="isApproved" allowAnonymous="false" provider="UmbracoMembershipProvider" type="System.Boolean"/>

然后扩展 ProfileBase 并添加一个 Approved 属性。在 member > provider 部分的 web.config 中,将此属性添加到您的提供程序密钥中,例如:

<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" umbracoApprovePropertyTypeAlias="isApproved" umbracoLockPropertyTypeAlias="isLocked" ... />

我无法确定,但我认为没有它就行不通。

我希望这会有任何用处。

于 2013-07-11T08:43:00.777 回答