我向系統添加了可選的OpenID身份驗證。一切工作順利與DotNETOpenID。然而,我得到一個問題時:DotNetOpenId - 通過編程和網絡登錄獲取重播攻擊失敗
- 用戶登錄到使用標準登錄(FormsAutentication)
- 用戶同夥一些OpenID支持帳戶(我們使用編程的OpenID登錄在這裏得到所宣稱的身份)的Web應用程序
- 用戶註銷FormsAuthentication並使用OpenID(使用Login控制)重新登錄。
在最後一步,我們得到一個重放攻擊錯誤。我懷疑OpenID在應用程序存儲中保留了一些信息(用於請求),這些信息用於獲取先前的請求,而不是啓動一個新的請求。
任何人都可以幫助解決這裏的問題嗎?
如果問題出在我對它的理解上,如何在使用程序化登錄成功將OpenID綁定到帳戶(鑑於我手邊有成功的請求)後清理此特定狀態信息?
首先,在您的repro步驟中,您提到用戶使用您的程序化登錄進行登錄,然後使用Login控制登錄。那麼這兩個不同的登錄頁面,一個是編程式的,一個是使用`OpenIdLogin`控件?或者它是相同的程序化登錄頁面?我不確定這是否意義重大,但我只想在你的場景中看清楚。 – 2009-07-24 13:54:14