我创建了一个类来处理使用自定义字段创建成员资格的用户。
我是基于这个解决方案做到的:
namespace CCL
{
public static MemberProfile CurrentUser
{
get
{
if (Membership.GetUser() != null)
return ProfileBase.Create(Membership.GetUser().UserName) as MemberProfile;
else
return null;
}
}
}
现在我正在尝试使用创建用户并获取配置文件数据:
if (Membership.GetUserNameByEmail(email) == null)
{
MembershipUser member = Membership.CreateUser(username, password, email);
Roles.AddUserToRole(username, "WebsiteUsers");
CCL.MemberProfile currentProfile = CCL.MemberProfile.CurrentUser;
bool exists = currentProfile != null;
Response.Write(exists.ToString());
}
但 currentProfile 正在返回 null 。
所以我无法将表单中的值分配给我的成员自定义属性,这些属性由类中设置的属性处理:(
我无法理解如何使其发挥作用:(
有没有人有想法?感谢
答案 0 :(得分:1)
建议1:
确保ProfileBase.Create返回可以强制转换为“MemberProfile”的内容,否则如果它不能再强制转换就会返回NULL。
建议2:
确保您运行的上下文具有登录用户,因此您对Membership.GetUser()的调用可以找到当前用户对象。
其他想法:
ProfileBase.Create方法假定您传入的用户名是经过身份验证的用户,当用户未经过身份验证时,我不确定它的行为。可能它返回NULL吗?