Azureに展開した後に外部ログインプロバイダに問題がありますが、外部プロバイダ(GoogleとFacebook)で認証できましたが、ユーザーがクリックして登録するとエラーが発生します。asp.net mvc AzureでOAuth外部ログインに失敗しました
「メンバーシップAPI」の使用と「canEdit」ロールの追加に関するこのチュートリアルに続いています。メンバーシップAPIを使用して
それは、ローカルホスト上でうまく働いたが、私はそれが正常にGoogleやFBに認証し、ExternalLoginConfirmation.cshtmlに取得し、利用者が登録を押すことができます紺碧のために展開するとき、それはその後、表示https://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth-sql-database/
'リクエストの処理中にエラーが発生しました。'
DB上のAzure ASPNetUsersテーブルに接続することができ、ユーザーが作成されていることができます。ユーザーは実際にログインをクリックしてサイトに入ることができます。ただし、ユーザーは 'canEdit'ロールに追加されていないため、確認中に部分的に完了または失敗するようです。私はなぜこれがローカルホスト上で動作するのかAzureではないのか分かりません。私はAzureにも新しいデプロイメントを構築しました。 ExternalLoginConfirmationのAccountcontrollerメソッドにエラーがありますか?このエラーは、ユーザーを「canEdit」ロールに追加するときに発生しますが、Azure上でのみローカルホストには追加されません。
// POST: /Account/ExternalLoginConfirmation
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
{
if (User.Identity.IsAuthenticated)
{
return RedirectToAction("Index", "Manage");
}
if (ModelState.IsValid)
{
// Get the information about the user from the external login provider
var info = await AuthenticationManager.GetExternalLoginInfoAsync();
if (info == null)
{
return View("ExternalLoginFailure");
}
var user = new ApplicationUser {
UserName = model.DisplayName,
Email = model.Email,
OAuthName = model.OAuthName,
DisplayName = model.DisplayName,
ForceID = model.ForceID,
NeighID = model.NeighID,
MyLatLng = model.MyLatLng
};
var result = await UserManager.CreateAsync(user);
if (result.Succeeded)
{
result = await UserManager.AddLoginAsync(user.Id, info.Login);
if (result.Succeeded)
{
await UserManager.AddToRoleAsync(user.Id, "canEdit");
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
return RedirectToLocal(returnUrl);
}
}
AddErrors(result);
}
ViewBag.ReturnUrl = returnUrl;
return View(model);
}
誰でも基本的なデバッグ手順をお勧めしますか?エラーログを表示する方法はありますか? (私がこれを初めて知ったように謝罪する - ガイダンスは高く評価された)。
理解できませんでした。あなたの問題はAzureだけですか?次に、「...(GoogleとFacebook)と言うが、ユーザーがクリックして登録するとエラーが表示される」 。あなたの問題を最初に特定することをお勧めします。 – ozgur
こんにちはOzgur、はい、問題はAzureだけです。 localhostではすべて正常に動作し、ユーザは両方のOAuthプロバイダによって認証され、Aspnetusersテーブルに正常に入力されると、新しいCanEditロールが割り当てられます。それは私が問題を抱えているAzureにあり、ユーザーはFB&Googleによって認証され、ExternalLoginConfirmationページに移動し、登録を押すとエラーが表示されます。ユーザーはログインをクリックしてアプリケーションにサインインし、Azure DBを調べると、ユーザーはAspnetuserテーブルにありますが、新しい「canedit」ロールはありません。私は新しいプロジェクトを含めAzureに2回展開しました。 –
私は、ユーザーを認証するOAuth2.0プロバイダとしてGoogle&Facebookです。 –