2010-09-04 87 views
0

我正在嘗試將facebook登錄名納入我的ASP.NET網絡應用程序,並且遇到了下面的文章,其中有相同的代碼示例。使用md5哈希驗證fb cookie

http://ntotten.com/2010/04/new-facebook-connect-in-csharp/

以下是文章。

接下來,最重要的是,類 驗證cookie。此驗證 使用MD5散列法將附加到應用程序 機密的密鑰的內容與使用cookie進入 的簽名進行比較。如果這些值匹配 我們知道密鑰是有效的。我們知道密鑰是有效的。

爲什麼使用Md5散列?爲什麼不是SHA或其他算法?

如果我不驗證cookie,會發生什麼情況?可以將無效的cookie發送到服務器?

在文章中,如果cookie無效,他會拋出一個新的安全異常?在這種情況下用戶應該做什麼?

我從來沒有真正與cookie合作過,所以我想在這裏獲得基礎知識。

謝謝。

回答

0

好吧,經過一些更多的搜索和通過代碼,我終於明白了。

http://developers.facebook.com/docs/authentication/fb_sig

+0

請注意使用fb_sig身份驗證。這很快就會消失。如果您正在創建新應用程序,最好使用新的OAuth 2.0身份驗證系統。 http://developers.facebook.com/docs/authentication/canvas – 2010-09-20 13:57:03

0

我建議你只是用我做做驗證的SDK。 http://facebooksdk.codeplex.com。那篇文章基本上是我在啓動SDK時編寫的第一個代碼。 SDK將處理幾乎所有你需要在.Net上開發Facebook應用程序所需的一切。我們在使用Windows azure託管的一些非常大的Facebook應用程序的地方使用它。

SDK將爲您處理所有哈希/驗證。所有你需要做的是:

var app = new FacebookApp(); 
var session = app.Session; 
if (session != null) { 
    // Session is valid 
} else { 
    // Session is not valid 
} 

會話對象在它返回給你之前被驗證。

+0

Nathan,我看過你開發的SDK,如果現在切換到SDK,對我來說是一種返工。但好的工作,一定會在未來嘗試。 – shashi 2010-09-20 05:07:20