2009-05-25 14 views
2

ASP.NET MVCアプリケーションのメンバシップをどのように処理しますか?外部ライブラリを使用していますか?どのようにOpenIDログインをしますか?ユーザー名ログイン?電子メールログイン?探してみる価値のあるものはどれですか?多分それらのすべてがアプリケーションに混在していますか?ASP.NET MVCアプリケーションのメンバーシップを処理する方法は?

ASP.NETにはいくつかのビルド前のユーザーデータベースが付属しているようです(私は全く新しい.NETです)。 NerdDinnerの例ではそれを使用していますが、外部キーでユーザー名を使用します。それはとても良いとは言えません。この2つの別々のデータベースのスキーマを使用していますか?あなたは外来キーとして、どんなIDを使用しますか?

ASP.Net MVC Membershipは誰でも使用していますか?それはうまくいくのですか?それは維持されることが期待できますか?

答えて

4

メンバーシッププロバイダは、ASP.Net MVCには新しくなく、ASP.Net 2.0で導入されました。 メンバシッププロバイダモデルは、アプリケーションと、ユーザを認証するソースとの間の単なる抽象レイヤです。 web.configファイルを変更するだけで簡単にプロバイダを切り替えることができます。

メンバシッププロバイダを書くのは簡単ですが、Web上には多くのウォークスルーがあります。通常は、ASP.Net(ほとんどの場合)に付属のデフォルトの例とは異なるスキーマを使用しているデータベースを使用している場合は、そうするでしょう。 NerdDinnerの例のユーザー名の外来キーは、実際のデータベースではほとんど見られない単純な例です。

私はと非常にメンバーシップモデルを使用することをお勧めします。ログインコントロールのようなコントロールは、それを利用するために構築されており、うまく設計されており、アプリケーションのさまざまなログインメソッドを簡単に変更または組み合わせることができます。あなたがOpenIDを使いたいなら、素早くgoogle検索するとOpenID Membership Providerになります。

+0

MVCアプリケーションのコントロールのためにメンバーシッププロバイダを推奨するのは誤りです。適用できません。サーバーサイドコントロールが、MVCビットがペストのように回避するものの1つです。 – blowdart

+0

私は「メンバーシップ・プロバイダを書くのは簡単です」という意見に同意します。プロバイダは容易に拡張できません。自分自身をロールしたい場合は、すべてのメソッドを上書きする必要があります...そして、たくさんあります。とにかくメンバーシップ・システムが多くのアプリケーションに適しているのは事実です。 –

+0

@blowdart - しかし、MVCとASP.Netは相互に排他的ではないので、メンバーシップ・プロバイダを引き続き活用する必要があります。 @Mathias - あなたがするのは、インターフェイスを実装することだけです。ほとんどのアプリケーションでは、ユーザーをログインさせるためにはValidateUser()関数が必要なだけなので、ユーザー管理は必要ありません。実際には関数のうちの1つを実装するだけです。 – womp

関連する問題