您好我基本上是在尝试创建自己的Facebook登录(并创建一个本地帐户)。我有一切工作,除了这一点:创建帐户后,我正在尝试设置基本配置文件并将其绑定回帐户。我能够创建帐户但是当我尝试将providerkey转换为Guid时,它返回null。如果我尝试不转换它我得到错误“不能隐式地将对象转换为Guid”providerkeyvalue本身不为null并且格式如下{7092216C-943F-4D30-9432-6CD10CF3447E}
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(fbprofile.first_name + fbprofile.id, GenerateRandomPassword(8), fbprofile.email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
MembershipUser user = Membership.GetUser(fbprofile.first_name + fbprofile.id); //Gotta get the GUID and tie it to the profile
profile.UserID = (Guid)user.ProviderUserKey;
}else{
}
编辑:如果它有所不同,则ProviderUserKey设置为成员资格类中的对象。
答案 0 :(得分:0)
您可以将字符串传递给Guid结构的constructor:
// user.ProviderUserKey == "{7092216C-943F-4D30-9432-6CD10CF3447E}"
profile.UserID = new Guid(user.ProviderUserKey);
构造函数接受各种格式的GUID,例如“dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
答案 1 :(得分:0)
根据您的评论,您的问题是您没有创建Profile类的实例。如果不先创建该对象的实例,则无法为null对象赋值。
“对象引用未设置为对象的实例”意味着您尝试取消引用空对象,即您正在尝试访问对象的成员或属性为null。
在该行代码中,只有两件事会导致该错误。如果profile为null或user为null,如果其中任何一个为null,则会出现此错误。这是唯一可能的事情。