2014-07-27 42 views
0

我有Visual Studio 2013旗艦版。我創建了帶有.Net Framework 4的ASP.NET Web窗體應用程序(不是MVC)
用戶主鍵是uniqueidentifier(GUID), 我在dafault Login.aspx,Register.aspx和其他表單中找到。有使用User.Identity.Name代碼,而不是主鍵用戶名:如何在身份驗證(Web Forms asp.net)中使用UserId而不是用戶名?

Dim hasLocalPassword = OpenAuth.HasLocalPassword(User.Identity.Name) 
Dim accounts As IEnumerable(Of OpenAuthAccountData) = OpenAuth.GetAccountsForUser(User.Identity.Name) 
Dim result As SetPasswordResult = OpenAuth.AddLocalPassword(User.Identity.Name, password.Text) 

如何改變這種「User.Identity.Name」用戶的主鍵GUID,因爲兩個以上的用戶可以擁有同樣的名字嗎?

回答

2

如果您正在使用ASPNET會員供應商:

MembershipUser user = Membership.GetUser(User.Identity.Name); 
Guid guid = (Guid)user.ProviderUserKey; 

在端Oauth的情況下,你必須做到這一點。

You should add `[InitializeSimpleMembership]` on top of controller class if you use another controller than AccountController. 

WebSecurity.GetUserId(User.Identity.Name); 

還要檢查這個答案: MVC Simplemembership I cannot get the userID after logging a user in via OAuth

+1

我有兩個同名的用戶。怎麼做。此AspNet成員資格不允許同名的其他用戶? –

+0

有什麼方法可以使用UserId作爲主鍵,並且想要創建具有相同名稱的用戶? –

+0

我不知道爲什麼微軟創建了這個(User.Identity.Name)爲成員默認,因爲可以有更多的用戶具有相同的名稱。 –

相關問題