まず第一に、既存のユーザー データベースがある場合は、おそらくSqlMembershipProvider
それを使用するように強制するべきではありません。SqlMembershipProvider
は抽象MembershipProvider
クラスの完全な実装であり、正しく機能するには正しいスキーマを持つデータベースが必要です。
代わりに、抽象MemberShipProvider
クラスの独自の実装を作成する必要があります。開始するには、クラスCoultonsMemebshipProvider
を作成し、それを から派生させSystem.Web.Security.MembershipProvider
ます。次に、 MembershipProvider内にカーソルを置いてクリックし、[ Implement abstract class...Ctrl+.
]を選択します。Visual Studio は、実装できるメソッドの多くのコードを追加します。
VS に挿入されたコードを最初に見た後、このタスクは確かに気が遠くなるように見えます。ただし、実際に実装する必要があるのは、アプリケーションが必要とする部分だけであることを忘れないでください。必要のないメソッドとプロパティについては、デフォルトのままにしておいてかまいません。throw new NotImplementedException();
「なぜメンバーシップ クラスを使用する必要があるのか...」という質問に対して、答えは簡単です。これは、認証スキームを構築する際に正しい方向に導く、試行錯誤され、よく考え抜かれた抽象化です。
とはいえ、実際にはメンバーシップ プロバイダーが必要ないと強く感じている場合でも、メンバーシップ プロバイダーを使用FormsAuthentication
してそのメリットを得ることができます。このオプションを詳しく知りたい場合は、Scott Mitchell による FormsAuthentication に関するこのチュートリアル(特に導入部) をご覧ください。