嗨,我基本上是試圖創建自己的Facebook登錄(並創建一個本地帳戶)。我有一切工作,除了這一點:創建帳戶後,我試圖設置一個基本的配置文件,並將其綁回帳戶。我能夠創建該帳戶,但是當我嘗試將提供程序鍵強制轉換爲Guid時,它將返回爲空。如果我嘗試不投它,我得到錯誤「不能隱式對象轉換爲guid」的providerkeyvalue本身不爲空,並且在這樣的格式{7092216C-943F-4D30-9432-6CD10CF3447E}無法將ProviderUserKey轉換爲GUID?
// 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設置爲僅在會員類中的對象。
你在使用SqlMembershipProvider嗎?在這種情況下,你的代碼應該可以工作(根據http://msdn.microsoft.com/en-us/library/system.web.security.membershipuser.provideruserkey.aspx)。如果沒有,當將其添加到(快速)觀察窗口時,user.ProviderUserKey.GetType()會返回什麼? – M4N 2012-08-02 21:19:03
你的問題沒有任何意義。如果將user.ProviderUserKey轉換爲guid(通過強制轉換),則它不會返回null,如果該值爲null或不是guid,則會引發異常。 Guid是一個值類型,不能爲空,所以如果你找到了profile.UserID爲null,它必須是因爲它是可以爲空的類型,並且你將它設置爲null。 – 2012-08-02 21:22:03