0

SimpleMembershipProvider を詳細に理解しようとしています。これまでのところ、空の Asp.Net MVC - 4 テンプレートを使用して、VWD-2012 で新しいプロジェクトを作成しました。

私はこの素晴らしいチュートリアルに従っています。このチュートリアルのすべてのクラスをコピーして自分のプロジェクトに貼り付けることができました。次に、global.asax Application_Start メソッドで次のコード行を使用して、 SimpleMembershipProcider を初期化しました。

WebSecurity.InitializeDatabaseConnection("dbcontext", "UserProfile", "Id", "Name", true);

(userprofile テーブルの列名として Id と Name を使用しています)

その後、プロジェクトで移行を有効にし、最初の移行を作成してから、Update-Database を作成しました。次に、Visual Studio でデータベースを確認すると、SimipleMembership に関連するすべてのクラスが作成されました。

次に、ユーザーを作成し、正常にログインしました。この時点まで、すべてが正常に機能していました。次に、自分の Web サイトに ID プロバイダーとして Facebook を追加しました。このプロセスでは、コード行が

OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);

webpages_OAuthMembership テーブルにエントリを作成しようとします。ただし、次の例外が発生しました。

INSERT ステートメントが FOREIGN KEY 制約 "FK_dbo.webpages_OAuthMembership_dbo.webpages_Membership_UserId" と競合しました。データベース「dbcontext」、テーブル「dbo.webpages_Membership」、列「UserId」で競合が発生しました。ステートメントは終了されました。

誰でもこの問題を解決するのを手伝ってもらえますか?

4

0 に答える 0