お手紙ありがとうございます。
すっかり春の陽気で過ごしやすくなりましたね。まだまだ朝晩は冷え込みますのでお体にはお気を付けください。あ、MVPおめでとうございます。
おいらといいますと、おかげさまで元気に忙しく過ごさせて頂いています。
さて例のWCF Data ServicesをFormsAuthenticationでアレコレしてゴニョゴニョする件ですが、ASP.NET MVCのアクションメソッドでこうするとできるんだ~!という新しい知見が開けて大変興味深かったです。
ASP.NET MVCのアクションでやる場合、楽ちん・便利という視点ではなく、アプリケーション全体として見てどうなのかな?と単純に思いました。
WCF Data Servicesのみで完結させた場合は以下のような特徴が考えられます。
- サーバーサイド(WCF Data Services側)でログオン処理を記述する必要が無い(Web.configに追記でOK)
- ASP.NETなWebアプリケーションと分けることが出来る(代わりに仮想アプリや仮想サイトが分かれたりしますが)
つまりMembershipプロバイダを分けることも同じものを使うこともできる
ではASP.NET MVCのアクションの場合はというと。
- アクションを実装する必要があるが認証の方式を変えたり、ID/Password以外の要素でも評価できる(Authentication_JSON_AppService.axdの仕様に左右されない)
- 仮想サイト(仮想アプリケーション)が1つで済む
- Membershipプロバイダを使う必要が無い(もちろん使ってもよい)
- きめ細かく動作を制御できる
などがありそうです。まぁどちらもにわかな人が考えた内容なので間違ってるかもしれませんが。。
個人的に思うのはやっぱりアプリケーションの構成をどうするか、認証方式をどうするか/したいか、が一番大きなポイントでしょうか。
もともとはおいらが求めた要件にマッチするのがWCF Data Servicesで完結させる方法だった、というのとWebアプリ/データアクセス/認証をできるだけ分離しておきたかったというのが大きなポイントで以前の投稿のような形式になった背景がありますので、単純な比較は難しいですね。(Federation認証等ともからんじゃったり色々…)
ということでケースバイケースという魔法のことばでぽぽぽーん集約してしまいますが、ボツネタにならず公開して頂いてよかった!と思いますです。
あぁ、この内容こそ没ネタにすべきだったかなw
あと関係ないですがTHE CODE PROJECTはいろいろ勉強になりますね。
ではでは。