2013-07-14 38 views
19

我目前正在構建一個新的ASP.NET MVC 5項目,我想在九月左右發佈。我需要選擇一個會員系統,但我現在對我應該採取哪個方向感到困惑。目前的SimpleMembership運行良好,但顯然與即將到來的ASP.NET身份不兼容。另一方面,ASP.NET Identity是絕對新的零文檔,可隨時更改。最後,似乎基於字符串的ID在這裏被使用,這與SimpleMembership支持的基於整數的ID相比似乎是非常不必要的開銷。我可以選擇一個好的,未來的證據嗎?ASP.NET身份

+0

字符串格式化的GUID的代碼來看看在實際發生的GUID用於允許持久化機制更容易被換出,說,如果你想使用的NoSQL解決方案,沒有提供支持的GUID。 id列被索引,儘管索引int列的性能更好,但大多數應用程序的差異可以忽略不計。 – joelmdev

+0

請參閱http://stackoverflow.com/questions/19238621/why-do-the-asp-net-identity-interfaces-use-strings-for-primary-and-foreign-keys/19283502#19283502因爲GUID是用過的。 – RickAndMSFT

回答

10

我建議不要使用SimpleMembership。您仍然可以使用int中的ID數據庫,在數據庫實體,插入時你只需要的ToString()的ID,即:

public class MyUser : IUser { 
    [Key] 
    int UserID { get; set; } 

    string IUser.Id { get { return UserId.ToString(); } } 
} 
8

在,如果你開始與asp.net的MVC 5你的項目,你應該使用新的會員制度,因爲它很好地http://owin.org/標準的集成我的意見。

+1

此外,我們正在添加更多的教程,並且對它有大量的支持。 – RickAndMSFT

1

我要麼用身份的最新版本,或者建立自己的帳戶系統完全。 ASP.NET Identity現在使用GUID(NVARCHAR(128) - 在數據庫中)作爲ID,但是如果您願意,仍然可以使用int。我知道仍然使用身份標識1.0的人沒有問題,我相信他們在那時使用了int。

無論哪種方式,Id不應該衝突它是一個int還是一個guid。正如上面的帖子說你可以只是Id.ToString();

無論你走的路線是什麼,我都不認爲它會帶來很大的改變。

0

我相信ASP.NET是相當不錯的框架,併爲應用程序提供幾乎所有必需的功能。它還提供了根據您的選擇選擇Id列類型的可行性。我創建了基本的ASP.NET身份封裝器併發布了一個nuget,以便它可以輕鬆使用。您可以在github