ASP.NET Core 8 с кодом состояния входа в Google невозможно установить, поскольку ответ уже начался.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET Core 8 с кодом состояния входа в Google невозможно установить, поскольку ответ уже начался.

Сообщение Anonymous »

Я работаю над приложением ASP.NET Core 8, использующим Identity для аутентификации, включая вход в Google. После успешного входа в систему с помощью Google приложение перенаправляется на /signin-google, но это приводит к необработанному исключению:
(токен доступа и токен обновления хорошо сгенерированы и работают)
Экран исключений
System.InvalidOperationException: StatusCode невозможно установить, поскольку ответ уже начался. в Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowResponseAlreadyStartedException (строковое значение)
Вот мой AuthController:

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

    [ApiController]
[Route("[controller]")]
public class AuthController : ControllerBase
{
private readonly ILogger _logger;
private readonly SignInManager _signInManager;

public AuthController(
ILogger logger,
SignInManager signInManager)
{
_logger = logger;
_signInManager = signInManager;
}

[HttpGet("google")]
public IActionResult Login()
{
var properties = _signInManager.ConfigureExternalAuthenticationProperties(
GoogleDefaults.AuthenticationScheme, null);
return Challenge(properties, GoogleDefaults.AuthenticationScheme);
}
}
И мой Program.cs:

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

    public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddAuthentication(IdentityConstants.BearerScheme)
.AddGoogle(googleOptions =>
{
googleOptions.ClientId = "client";
googleOptions.ClientSecret = "secret";
})
.AddBearerToken(IdentityConstants.BearerScheme);

builder.Services.AddAuthorizationBuilder();

builder.Services.AddDbContext(x => x.UseInMemoryDatabase("AuthNet8"));

builder.Services.AddIdentityCore()
.AddEntityFrameworkStores()
.AddApiEndpoints();

builder.Services.AddControllers();

var app = builder.Build();

app.MapGet("/", (ClaimsPrincipal user) => $"Hello {user.Identity.Name}")
.RequireAuthorization();

app.MapControllers();

app.Run();
}
}
Что может быть причиной этого исключения InvalidOperationException и как его исправить? Есть идеи?
Я пробовал изменить порядок промежуточного программного обеспечения, но проблема не устранена.

Подробнее здесь: https://stackoverflow.com/questions/780 ... e-response
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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