2012-03-23 13 views
7

私はASP.NET MVCの新機能です。私はPHPからそれに切り替えました。ASP.NET MVCでユーザーを管理する最善の方法は何ですか

PHPでは、ユーザーを管理するページを作成するときに、ユーザーとプロファイルのテーブルを作成してその中にデータを格納することがよくありました。 ASP.NETにはメンバーシップとプロファイルプロバイダがあります。

私の質問は、ASP.NET MVCでユーザーを管理する最良の方法は何ですか? PHPのようにカスタムテーブルやロジックを作成する必要がありますか?カスタムプロバイダを作成する必要がありますか?

私は知っている、この問題に関する多くの似たようなトピックがあります。しかし、それらのどれも私が必要とするものではありません。

マイクさん、ありがとうございました。

+2

ホイールを再発明する必要はありません。組み込みのメンバーシップ・プロバイダーを使用します。あなたがすることは何でもエラーが発生しやすく、安全性が低くなります。特に.netフレームワークに精通していない場合は特にそうです。マイクロソフトのエンジニアが構築したものを成長させるまでには、しばらく時間がかかるでしょう。 – frenchie

+2

@frenchie私は同意しないことを願います。メンバシッププロバイダは、他の多くの素早く汚いものと同様に、素早く汚れたもの(またはデモ)には適しており、より良い(あなたのニーズに合わせて)会員になることは難しくありません。私は自分のアプリケーションニーズに応じてメンバーシッププロバイダを構築し、メンバーシップは自分のニーズに適切に対応していません。数年前に私はこの結論に至りましたが、細部まで覚えているわけではありませんが、ユーザーIDとしてguidsを使用するのは嫌です。 – MikeSW

答えて

3

使用ASP.Net Memebershipは、ホイールを再作成していない

http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-7

+0

メンバー全員、ありがとうございます。メンバーシッププロバイダーに精通して、プロフィールの力を使って、ユーザーに関するいくつかの追加情報を追加することにしました。 – michy04

2

はおそらく何の最善の方法はありませんと言うべきです。ベストはあいまいです。

SQLサーバーでユーザーと役割を実行する一般的な3つの方法があります(これはテーブルに言及しているためです)。

最初に、組み込みのASP.NET(webforms/mvc agnostic)SqlMembership Providerを使用してください。これには、ユーザーがユーザーを管理するために必要な機能のほとんどが含まれています。これは実装するのが最も速い可能性が最も高いですが、最小限の拡張性があります。これは強く推奨されるでしょう。

2番目:メンバーシッププロバイダパターンに従ってください。ただし、独自のロジックをアプリケーションに導入してください。独自の提供機能を構築するにはかなりの時間がかかるかもしれませんが、他のプロジェクトで使用することもできます。なぜなら、独自のプロバイダであり、アプリケーションに結び付けられていないからです。

第3段階:完全なスクラッチから独自のロジックを構築します。独立したアプリケーションのように構築しない限り、私はこれをお勧めしません。

+0

ありがとう、これは私の決定に役立った良い意見です。 – michy04

2

私はオスカーとフレンチに同意します。ホイールを再発明しないでください。 ASP.NETメンバーシッププロバイダは、あなたに良いスタートを提供する必要があります。しかし、TDDのファンなら、メンバーシッププロバイダの実装を、制御可能なクラスの中にカプセル化して、モッキングに対処できるようにする必要があるかもしれません。メンバーシッププロバイダー契約は非常に巨大で緊密に結びついています。私は経験を通して、その獣の30〜40%しか使用していないことがわかりました。独自の契約を作成し、それを使用してメンバーシッププロバイダーと対話します。あなたは後で自分自身に感謝するでしょう。

幸運を祈る!

関連する問題