Ich bin über ein Problem gestolpert, wo die Anwendung den Benutzer auf Account/AccessDenied/
umleitet, wenn dem angemeldeten Benutzer eine Social Media-Authentifizierung hinzugefügt wird. Es scheint zu funktionieren, wenn der Benutzer zum ersten Mal angemeldet ist. Wenn Sie dann versuchen, eine weitere Authentifizierungsmethode hinzuzufügen, wird der Benutzer an Account/AccessDenied?ReturnUrl=%2Fmanage%2Flinklogincallback
zurückgegeben.App verweist auf Account/AccessDenied beim Hinzufügen von Oauth
Meine Vermutung ist, dass etwas mit dem Attribut [Autorisieren] schief geht, aber nur das zweite Mal versuche ich externe Authentifizierungsmethode hinzuzufügen.
ManageController
[Authorize]
public class ManageController : Controller
{
//
// POST: /Manage/LinkLogin
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult LinkLogin(string provider)
{
// Request a redirect to the external login provider to link a login for the current user
var redirectUrl = Url.Action("LinkLoginCallback", "Manage");
var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl, _userManager.GetUserId(User));
return Challenge(properties, provider);
}
//
// GET: /Manage/LinkLoginCallback
[HttpGet]
public async Task<ActionResult> LinkLoginCallback()
{
var user = await GetCurrentUserAsync();
if (user == null)
{
return View("Error");
}
var info = await _signInManager.GetExternalLoginInfoAsync(await _userManager.GetUserIdAsync(user));
if (info == null)
{
return RedirectToAction(nameof(ManageLogins), new { Message = ManageMessageId.Error });
}
var result = await _userManager.AddLoginAsync(user, info);
var message = result.Succeeded ? ManageMessageId.AddLoginSuccess : ManageMessageId.Error;
return RedirectToAction(nameof(ManageLogins), new { Message = message });
}
}
Könnte es die Reihenfolge, in der startup.cs sein angeordnet ist?
Dies ist das Request/Response
Tritt dieser Fehler regelmäßig auf? Weil ich diesen Fehler sehr oft bekam, als mein Code noch Buggy-Ausnahmen warf. Durch das Löschen der Cookies wurde das Problem vorübergehend behoben. Später, als ich meine kleinen Fehler korrigierte, trat diese Umleitung nicht mehr auf. –
Es passiert ständig, aber ich habe keine Ahnung, was es ist, da alles andere wie geplant funktioniert. Was waren deine kleinen Fehler, die du behoben hast, damit es funktioniert? – Rovdjuret
Haben Sie 'app.UseGoogleAuthentication (...)' in Ihrer 'Configure() 'Methode der' Startup'-Klasse hinzugefügt? –