ASP.NET MVC アプリケーションで WIF を使用するためのサンプル アプリケーションはありますか? これらのテクノロジーの両方を統合しようとするのを手伝ってくれる人はいますか?
4 に答える
Dominick Baiers StarterSTS は、始めるのに最適な例であることがわかりました。
これを STS として使用しない場合でも、サイトのチュートリアルは出発点として最適です。特に ASP.NET MVC のチュートリアルはありませんが、ASP.NET WebForms とまったく同じように機能します。
要するに...
- WIF と WIF SDK をダウンロードします - http://msdn.microsoft.com/en-us/evalcenter/dd440951.aspx
- StarterSTS のダウンロード - http://startersts.codeplex.com/
- STS の紹介ビデオに従ってください - https://identity.thinktecture.com/download/startersts/v1/StarterSTS_InitialSetup.wmv
- ASP.NET チュートリアル http://identity.thinktecture.com/download/starterSTS/v1/StarterSTS_FederatingWebApps.wmvに従ってください
- VS 2010 で新しい MVC プロジェクトを作成する
- プロジェクトを右クリックして [Add STS reference] を選択し、WebForms アプリケーションと同じウィザード手順に従います。(WIF 情報を web.config ファイルに追加します。)
MVC アプリにログインしようとすると、StarterSTS ID プロバイダーを使用してログインします。
コントローラー メソッドのいずれかをデバッグすると、WIF "ClaimsPrincipal" (IPrincipal を実装しているため、下位互換性があります) があることがわかります。
注意すべきことの 1 つは、チュートリアルは実際には認証のみをカバーしていることです。
MVC アプリからログアウトできるようにするには...
Microsoft.IdentityModel への参照を追加する
(「既知の」バグは、VS2010 の [参照の追加] ダイアログに表示されないため、C:\Program Files\Reference Assemblies\Microsoft\Windows Identity Foundation\v3.5\Microsoft. IdentityModel.dll)
テンプレート化された MVC AccountControllers LogOff メソッドで、今すぐ呼び出すことができます...
WSFederationAuthenticationModule.FederatedSignOut(null, new Uri("https://RP/"));
ここで、RP は、独自の MVC ベースの依拠当事者の URI です。
このすべての設定が完了したら、ADFS (Active Directory フェデレーション サービス) などの別の STS を使用するのは簡単です。(アプリを使用するように再構成する以外に何もする必要がないためです。)
補足として、その他のスクリーン キャストはこちらでご覧いただけます。
お役に立てれば。それはすべて地雷原のビットです:-)
ここに、基本をカバーする短い高レベルの記事があります。
実際のサンプル コードについては、Microsoft のIdentity Developer Training Kitに ASP.NET (および Silverlight など) の例が含まれています。
また、Microsoftは「クレームベースの ID とアクセス制御のクイック ガイド」という長い PDF を公開しており、参考になるはずです (第 3 章)。
MVC + WIF の簡単な例は、上記のガイドの「複数のパートナーとのフェデレーション」の章にあります。直接リンクはこちら: http://msdn.microsoft.com/en-us/library/ff359105(v=PandP.10).aspx
それがどのように機能するかの基本はここに文書化されています: http://blogs.msdn.com/b/eugeniop/archive/2010/04/03/wif-and-mvc-how-it-works.aspx
WIF が ASP.NET WebForms でどのように機能するかを理解したら、こちらの投稿を参照して、ASP.NET MVC でカスタム承認属性を作成してください。