2012-12-19 42 views
7

我在MVC 4編寫一個簡單的Web應用程序,我想OAuth with Trello,這樣我可以要求用戶登錄與他們的trello詳細信息,然後看到一些他們的卡。的OAuth與MVC定製的OAuth提供4

任何人都可以提供有關創建自定義的OAuth提供支持非開箱即用的OAuth提供者的信息?從我所看到的,我覺得需要創建一個自定義的Oauth提供商(子類IAuthenticationClient和使用該) - 是這樣嗎?

+0

您是否曾經找到添加自定義提供程序的解決方案? – Billdr

回答

11

好吧,我花了11小時因爲我的意見編寫自定義的OAuth類SO。明天我會去做一個銷售人員。我並不興奮。

這裏就是我所做的:

  1. 您預期的Json/XML創建一個DataContract類。我繼續執行所有返回的內容,但如果您只是在進行授權,則可能會將其縮減爲ID和DisplayName。

  2. 創建從DotNetOpenAuth.AspNet.Clients擴展OAuth2Client類。示例使用DotNetOpenAuth GitHub page。這是最長,也是最痛苦的一步,尤其是如果你的json序列化是生鏽的。

  3. 打開/App_Start/AuthConfig.cs並在RegisterAuth()部分的某處輸入OAuthWebSecurity.RegisterClient(new YourClass(Your, Initalization, Params), "The Name You Want to Show Up On Your oAuth Login Button", ExtraDataIfYouNeedIt;。我還沒有建立ExtraData參數,但我並不需要它。希望你不會需要它在你的。

編輯:更新GitHub的鏈接。

+1

'ExtraData'只是一個'IDictionary'對象;你可以將它用於任何你想要的。當我列出可用提供者時,我用它來綁定一些我想在局部視圖中訪問的CSS類。好的工作,順便說一句。 –

+1

輝煌,謝謝。我沒有機會這樣做,因爲我已經轉移到其他問題上了,但我打算很快看到它,所以我會看看你做了什麼並且回覆你! –

+2

舊線程,但請注意,DotNetOpenAuth頁面已移至:https://github.com/DotNetOpenAuth/DotNetOpenAuth – Joe