我的问题主要仅在将应用程序部署在smarterasp.net托管上之后出现。
当尝试登录到Facebook时,将我重定向到Facebook,然后在我接受返回到应用程序所需的权限后,出现了500错误页面
.../身份/帐户/外部登录?处理程序=回调#=
我试图查看日志,但是即使手动创建了logs文件夹也没有日志出现。
我试图对webconfig进行一些更改,例如从进程中进行到进程外,但无济于事。
返回OnGetCallbackAsync()时,问题出在OnPost()之后。
public IActionResult OnPost(string provider, string returnUrl = null)
{
// Request a redirect to the external login provider.
var redirectUrl = Url.Page("./ExternalLogin", pageHandler: "Callback", values: new { returnUrl });
var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl);
return new ChallengeResult(provider, properties);
}
public async Task<IActionResult> OnGetCallbackAsync(string returnUrl = null, string remoteError = null)
{
returnUrl = returnUrl ?? Url.Content("~/");
if (remoteError != null)
{
ErrorMessage = $"Error from external provider: {remoteError}";
return RedirectToPage("./Login", new {ReturnUrl = returnUrl });
}
var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null)
{
ErrorMessage = "Error loading external login information.";
return RedirectToPage("./Login", new { ReturnUrl = returnUrl });
}
// Sign in the user with this external login provider if the user already has a login.
var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, isPersistent: false, bypassTwoFactor : true);
if (result.Succeeded)
{
_logger.LogInformation("{Name} logged in with {LoginProvider} provider.", info.Principal.Identity.Name, info.LoginProvider);
return LocalRedirect(returnUrl);
}
if (result.IsLockedOut)
{
return RedirectToPage("./Lockout");
}
else
{
// If the user does not have an account, then ask the user to create an account.
ReturnUrl = returnUrl;
LoginProvider = info.LoginProvider;
if (info.Principal.HasClaim(c => c.Type == ClaimTypes.Email))
{
Input = new InputModel
{
Email = info.Principal.FindFirstValue(ClaimTypes.Email)
};
}
return Page();
}
}
最佳答案
没问题,但是我发布的内置文件有些未完成,有些 Controller 正在缓存参数,但是从Facebook重定向后,缓存就被清除了,并且出现了问题。
关于asp.net - 我在使用asp.net core 2.2应用程序的生产上的facebook登录回调中收到错误500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57331176/