2012-12-19 11 views
7

MVC 4で単純なWebアプリケーションを作成していますが、OAuth with Trelloにしたいので、ユーザにtrelloの詳細でログインして、 。MVC 4のカスタムoauthプロバイダを使用したOAuth

oauth以外のプロバイダをサポートするために、カスタムoauthプロバイダの作成に関する情報を提供できる人はいますか?私が見ることができるから、私はと思う私はカスタムOauthプロバイダ(サブクラスIAuthenticationClientとそれを使用する)を作成する必要があります - それは正しいですか?

+0

カスタムプロバイダを追加するソリューションを見つけたことはありますか? – Billdr

答えて

11

わかりました。私のコメントからSOのカスタムoAuthクラスを作成してから11時間を費やしました。明日私は販売員の一人をやる。私は興奮していない。

は、ここに私がやったことだ:

  1. があなたの予想されるJSON/XML用のDataContractのクラスを作成します。私は先に進み、SOが返すすべてのものを実装しましたが、あなたが承認をしているだけであれば、おそらく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 paramのためのものを確立していませんが、私の場合は必要ありませんでした。うまくいけば、あなたの中でそれが必要ではないでしょう。

編集:githubリンクが更新されました。

+1

'ExtraData'は単なる' IDictionary'オブジェクトです。あなたはあなたが望むものであればそれを使うことができます。私は利用可能なプロバイダをリストアップしていたときに、一部のビューでアクセスしたいいくつかのCSSクラスをバインドするために使用しました。ニース仕事は、BTW。 –

+1

賢い、ありがとう。私は他の問題に移ったのでこれを行うチャンスはありませんでしたが、いつかすぐにそれを見るつもりですので、あなたがしたことを見て、あなたに戻ってきます! –

+2

古いスレッドですが、DotNetOpenAuthページがhttps://github.com/DotNetOpenAuth/DotNetOpenAuthに移動したことに注意してください。 – Joe

関連する問題