2009-06-14 89 views
0

我有一個ASP.NET MVC應用程序,我剛剛集成了RPX第三方聯合身份驗證系統。整合工作正常,但我有點困難,在ASP.NET的層面上圍繞如何處理它。使用第三方認證的應用程序的密碼?

因爲身份是外部處理的,我在我的應用程序中不需要密碼:我永遠不會收到用戶的密碼,只是他們的身份。但是,ASP.NET會員提供程序的東西需要密碼傳遞以創建用戶,簽署用戶等。

我一直在考慮在創建時使用new Guid(),但這需要調用該數據庫在我可以通過成員資格提供者簽署用戶之前檢索用戶的密碼。我可以爲每個用戶使用相同的密碼,以便事先知道它,但是我擔心這會使我的用戶數據不安全。

我很想知道其他網站如何處理此問題,例如,StackOverflow。

[請同時參閱my other question,有關成員資格提供這樣的應用程序。]

回答

1

但我擔心這會讓我的用戶數據不安全。

開始通過確保沒有人可以直接在你的數據庫使用的用戶名和密碼進行驗證 - 我想這已經是你正在使用RPX做實際驗證的情況下,你只能調用ASP.NET會員提供商一旦你已經建立了用戶的身份。

然後,存儲在您身邊的密碼變得不重要,因爲它不是祕密 - 如果我可以計算出某人的密碼是在您身邊,它不會突然危及他們的數據,因爲我仍然無法登錄那個信息。用戶的祕密由第三方提供商管理,而不是你。

因此,您最好還是存儲最方便的(即衆所周知的虛擬值) - 您也可以在成員資格提供程序上關閉密碼加密,以恢復服務器上的一些週期。加密/散列值不用於驗證任何人的身份,這一點沒有意義。

1

爲什麼要使用asp.net成員呢?它並不真正適合你,你在做什麼是第三方認證。也許你可以看看dotnetopenid project和例子,因爲他們有一個經典的asp.net網站的例子,你可以修改mvc嗎?他們有一個wiki here也許google dotnetopenid mvc?

+0

我已經看過DotNetOpenID;在v3.1中也是MVC樣本。但是,它只處理認證,而不是授權。 ASP.NET成員身份似乎是授權系統的基礎,特別是MVC的[授權]屬性。如果我可以避免,我不想實施我自己的授權系統。 – alastairs 2009-06-15 07:16:26

相關問題