hi我正在研究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)"返回到其他条件
如果我反转条件,它就会进入if块并执行所有命令而没有错误,但仍然不会将用户标记为已批准的
请帮我
参考:在激活之前对新成员进行身份验证
我对approved也有问题。
现在我只在我的代码中使用这个:
MembershipUser user = Membership.GetUser(nodeIdOrUsername);
user.IsApproved = true;
Membership.UpdateUser(user);
您可能还需要将一个属性添加到您的Member类型中,例如isApproved,然后将其添加到web.config中profile>properties部分的提供程序中:
<add name="isApproved" allowAnonymous="false" provider="UmbracoMembershipProvider" type="System.Boolean"/>
然后扩展ProfileBase并添加Approved属性。在web.config的membership>provider部分中,将此属性添加到您的provider密钥中,例如:
<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" umbracoApprovePropertyTypeAlias="isApproved" umbracoLockPropertyTypeAlias="isLocked" ... />
我记不清了,但我想没有它就没用。
我希望这会有任何用处。