過去数時間、MVC 4 Web サイトに Facebook ログインを追加しようと試みてきました。
これまでのところ、「ローカル アカウントの登録」( WebSecurity.CreateAccount() は完全に機能します。
私のビジネスロジックでは、コードは次のようになります。
public ValidationReturn<User> AddUser(User data, string provider, string providerUserId)
{
....
Repository.Insert(data);
SaveChanges();
OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, data.LoginName);
現在、このようなアカウントを作成しようとすると、OAuthWebSecurity.CreateOrUpdateAccount が例外をスローします。
INSERT ステートメントが FOREIGN KEY 制約 "FK_dbo.webpages_OAuthMembership_dbo.webpages_Membership_UserId" と競合しました。データベース「Wims」、テーブル「dbo.webpages_Membership」、列「UserId」で競合が発生しました。
UserTable に自分のユーザーが表示され、db スキームを見てクラッシュする理由がわかりました...しかし、理由がわかりません... OAuthWebSecurity.CreateOrUpdateAccount は webpages_Membership にもレコードを作成するはずですか? もしそうなら、パスワードはどうですか?
http://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc、またはhttp://www.asp . net/web-pages/tutorials/security/16-adding-security-and-membership そして、ここで何が欠けているのかわかりません...
御時間ありがとうございます。