Код ASP.NET MVC Discord Oauth2 не может вернуть средство просмотра, всегда возникает ошибка HTTP 500C#

Место общения программистов C#
Anonymous
Код ASP.NET MVC Discord Oauth2 не может вернуть средство просмотра, всегда возникает ошибка HTTP 500

Сообщение Anonymous »

У меня есть приложение ASP.NET MVC, использующее вход Discord OAuth2 для получения имени пользователя и идентификатора. Проблема в том, что что бы я ни делал, несмотря на то, что URI PathString /signin-discord правильно направлен на метод, который возвращает представление .cshtml, вместо этого он всегда приводит к «HTTP-ошибке 500». .
Честно говоря, я понятия не имею, что я сделал не так, что URI не возвращает представление должным образом.
Вот моя конфигурация для Discord OAuth2 аутентификация:

Код: Выделить всё

[HttpGet("/signin-discord")]
public async Task ExternalLoginCallback()
{
var authenticateResult = await HttpContext.AuthenticateAsync("Discord");

if (!authenticateResult.Succeeded)
{
// Handle authentication failure
return RedirectToAction("Login", "Account"); // Redirect to login page or handle as needed
}

// Retrieve Discord user information
var userId = authenticateResult.Principal.FindFirst(ClaimTypes.NameIdentifier)?.Value;
var username = authenticateResult.Principal.FindFirst(ClaimTypes.Name)?.Value;

// Example: Authenticate user locally (store in session or database)
var claims = new[]
{
new Claim(ClaimTypes.NameIdentifier, userId),
new Claim(ClaimTypes.Name, username),
// Add additional claims as needed
};

var identity = new ClaimsIdentity(claims, "Discord");
var principal = new ClaimsPrincipal(identity);

// Sign in the user
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

// Redirect to your viewer page or any desired endpoint
return View("DrawingPad"); // This will render Views/Drawing/DrawingPad.cshtml

//return RedirectToAction("DrawingPad", "Drawing");
}
Я попробовал настроить метод контроллера, который должен вызываться по URI, и установить его подпись прямо в /signin-discord.

Код: Выделить всё

[HttpGet("/signin-discord")]
public async Task ExternalLoginCallback()
//return RedirectToAction("Index", "Home");}
Но ничего не помогло.

Подробнее здесь: https://stackoverflow.com/questions/787 ... -500-error

Вернуться в «C#»