2011-10-07 46 views
3

我試圖實現DotNetOpenAuth,而不使用OpenId提供程序。 獲取RequestToken不適用於我的實施。DotNetOpenAuth:何時調用StoreNewRequestToken?

我正在調用一個方法,它調用ServiceProvider.ReadRequest()。 這是調用IServiceProviderTokenManager.GetRequestToken(string token)。 在這一點上,找不到RequestToken,因爲我期待這種方法創建RequestToken

但創建RequestToken由方法StoreNewRequestToken處理。 何時調用此方法? 或者我該如何調用這個方法?

+0

DotNetOpenAuth至少有5個主要場景(OpenID提供者只有一個)。你可以調整你的問題,說出你想要做什麼,而不是你想做什麼? –

回答

1

聽起來好像您的OAuth SP主機代碼被誤寫了,或者消費者可能提供了來自先前嘗試的令牌。請activate logging並將日誌添加到您的問題。

我相信DotNetOpenAuth調用您的StoreNewRequestToken方法時,實際上是使用ServiceProvider.PrepareUnauthorizedTokenMessage發送您的響應消費者,併發送其結果使用ServiceProvider.Channel.Send。在此之前,我不認爲DNOA應該打電話給您的GetRequestToken,因爲消費者不應該有任何令牌可供嘗試 - 因此我之前的建議是消費者可能使用舊令牌(或故障)。

+0

感謝您的回答,儘管我的問題並不清楚。我絕對認爲這是推動我朝着正確的方向發展。由於我仍在開發,可能是我的實現是正確的,但我用一個不正確的OAuth標頭髮起了一個調用。我會調查。 – Jacco

+0

是的,我搞砸了我的標題,併發送一個令牌。感謝您讓我走向正確的方向。 – Jacco