2013-02-26 56 views
0

我一直在使用MVC3很長一段時間,現在我剛開始進入mongoDB。到目前爲止,我一直使用在Visual Studio中創建基本Web應用程序時提供的基本MembershipProvider系統。我以前沒有建立自己的。我知道這會爲你生成架構(dbo.aspnet_Users和dbo.aspnet_Membership),但其中很多都是無關緊要的。是否有一個教程,以獲得一個基本的登錄/註冊系統,直接從mongodb讀取..這是否甚至是一個好主意?或者我會保持我的用戶在一個單獨的SQL數據庫和所有其他數據在MongoDB?如何使用mongdb創建一個基本的用戶登錄/註冊

+0

有幾個.NET會員提供程序自定義實現,它使用MongoDB作爲後端數據庫。一個這樣的實現在這裏[GitHub](https://github.com/alanning/MongoProviders ) – parsh 2013-02-26 08:02:35

回答

0

我會讓用戶保留所有其他數據。如果你有一個用戶收藏,我覺得一個樣本文檔應該是這樣的:

用戶:


{ 
    "_id" : ObjectId("507f1f77bcf86cd799439011"), 
    "username" : "bob123", 
    "password" : "ABC122939232DEFEFE", 
    "status" : "active", // could be "pending" or whatever 
    "email" : "[email protected]" 
} 

你給用戶,他們創建一個登錄名和密碼的登錄畫面。您可以考慮讓他們使用他們的電子郵件作爲登錄 - 這些日子相當標準。

確保不是以純文本形式存儲其密碼。而是通過散列函數運行它並存儲結果(http://en.wikipedia.org/wiki/Cryptographic_hash_function)。當他們登錄時,您輸入密碼並對其進行散列,然後將其與數據庫中的值進行比較。總是必須計劃有人竊取您的數據庫的不幸情況。 =(

那麼你也可以與用戶文檔中的標誌從什麼我管理自己的狀態。您可以通過發送一個鏈接,並讓他們訪問它使人們確認他們的電子郵件。

只是一些想法已經完成過去的簡單登錄

+0

非常感謝您的回覆,如果我可以再問一步,如何將mongoDB連接到FormsAuthentication,以便在代碼中我可以調用諸如'Membership.GetUser()。ProviderKey'之類的東西,並使用th e [[Authorize]]屬性 – anthonypliu 2013-02-26 06:47:47

+0

添加到@ ryan1234答案中,您可以使用[BCrypt.Net](https://www.nuget.org/packages/BCrypt-Official)來哈希密碼。 – parsh 2013-02-26 08:00:00