2012-01-10 45 views
2

我使用自定義會員供應商重寫了asp.net會員供應商。我想知道我的用戶模型中爲我的ProviderUserKey設置了什麼樣的類型?如何在定製會員供應商時管理ProviderUserKey

我嘗試這樣做:

public class User 
{ 
    [Key] 
    public ????? ProviderUserKey { get; set; } 
    public string UserName { get; set; } 
    public string Password { get; set; } 
    public string Email { get; set; } 
    public string PasswordQuestion { get; set; } 
    ... 
} 

我不知道如何創建一個新用戶時生成一個新的ProviderUserKey值。有任何想法嗎?

+1

@ jadarnel27:是的,非常感謝。 – Bronzato 2012-02-23 12:22:26

回答

1

根據虛擬財產,應該是

public Object ProviderUserKey { get; set; } 

關於第一個問題:

我想知道我必須爲我的 ProviderUserKey設置什麼樣類型的我的用戶模型?

MSDN page上MemershipUser類:

的類型標識符的依賴於的MembershipProvider或 的MembershipUser。在SqlMembershipProvider的情況下,由於SqlMembershipProvider 將用戶標識符存儲爲UniqueIdentifier,所以ProviderUserKey可以轉換爲Guid。

所以,這取決於你如何存儲用戶標識符(作爲一個int/guid/varchar等)。您將其輸入爲Object,但根據您的實施將其轉換爲適當的數據類型。

而且你的第二個問題:

我不知道如何創建 新用戶時生成一個新的ProviderUserKey值。任何想法?

當您創建新用戶並將它們添加到存儲它們的任何內容(關係數據庫,XML文件等)時,檢索該進程生成的唯一標識符。如果您在此時沒有生成唯一的用戶標識符,您需要= =

+0

我不明白我該如何爲這個ProviderUserKey生成我自己的Guid,請你詳細說明一下嗎? – 2012-04-08 08:11:29

+0

@MoranMonovich它會像'System.Guid g = System.Guid.NewGuid();'。更多信息可以在[this Stack Overflow post](http://stackoverflow.com/questions/2344098/c-sharp-how-to-create-a-guid-value)和[documentation](http:/ /msdn.microsoft.com/en-us/library/system.guid.newguid.aspx)。 – jadarnel27 2012-04-08 21:49:59

+0

謝謝,我使用的方法CreateUser()可以接受三個參數,並自動創建Guid。 – 2012-04-09 04:41:23