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