2011-05-29 168 views
0

好吧 - 我是一個DotNetOpenAuth newb,只是爲了避免這種情況。DotNetOpenAuth - 立即請求訪問令牌

這裏有一個小的概述第一

我建立一個應用程序,這將是另一個應用程序的OAuth用戶端。這其他應用程序有他們所說的「應用程序市場」,用戶登錄到他們的網站可以直接啓動消費者網站。這個市場將包含一個鏈接到我們的應用程序 - 當點擊時已經包含請求令牌和請求令牌密碼。有了這個說法,我們顯然不需要讓OAuth請求獲取請求令牌等,因爲我們已經擁有它了。

現在 - 在這裏是我的問題

從我可以告訴 - DotNetOpenAuth似乎並沒有包含的方式來跳過第一對夫婦在授權過程的請求,並直接請求獲得訪問令牌。現在,顯然,我可以建立自己的HttpWebRequest來獲取它,但是我希望不必這樣做,因爲DotNetOpenAuth隱藏了所有那些凌亂的授權標題內容。那麼,任何人都知道有什麼方法可以跳過DotNetOpenAuth的訪問令牌步驟?

我試過打電話WebConsumer.Send(PrepareRequestUserAuthorization()),但似乎從一開始就開始了OAuth授權。我也試過撥打WebConsumer.ProcessUserAuthorization(),但那只是返回null。而且,坦率地說,圍繞DotNetOpenAuth的文檔對於這個newb來說還不夠具體,無法確定這些方法究竟應該做什麼。所以,任何幫助將不勝感激。

回答

3

這個應用程序市場提出的是而不是標準OAuth 1.0(a),因此不是DotNetOpenAuth支持的東西。也就是說,你可以使用一些技巧來使它工作。用精心設計的參數調用WebConsumer.ProcessUserAuthorization(HttpRequestInfo)將會「愚弄」DotNetOpenAuth,從這個應用市場離開你的角度開始。您將需要工藝的HttpRequestInfo對象,它包含所有將被包含在一個正常的OAuth流時請求令牌已被授權的消息部分:

  1. 的oauth_token
  2. oauth_verifier(如果這是一個OAuth 1.0a流程)

此外,您需要人工將請求令牌及其祕密注入您的令牌管理器實例WebConsumer.TokenManager。這也可能不是微不足道的,這取決於你如何實施它。

雖然我會提醒你的是,無論何時離開標準OAuth流程,徹底的安全評估都是至關重要的,因爲你可能會破壞協議中內置的安全機制。