Start Debugging

Тег: aspnetcore

92 статей · Страница1из10

Исправление: ASP.NET Core возвращает 400 "The X field is required" для свойства типа string, не допускающего null
При <Nullable>enable</Nullable> MVC обрабатывает каждый ссылочный тип, не допускающий null, как [Required(AllowEmptyStrings = true)]. Объявите необязательные свойства как string?, задайте им значение по умолчанию или установите SuppressImplicitRequiredAttributeForNonNullableReferenceTypes.
Исправление: Unable to find the required 'IAuthenticationService' service с [Authorize(Policy = ...)] в Blazor
Страница Blazor Web App с [Authorize] становится конечной точкой, которую проверяет AuthorizationMiddleware, а неудачная проверка вызывает ChallengeAsync, для которого нужен AddAuthentication. Зарегистрируйте настоящую схему или пропускайте конечные точки компонентов дальше, к AuthorizeRouteView.
Исправление: собственный DelegatingHandler не запускается повторно при каждом retry с AddStandardResilienceHandler
DelegatingHandler, зарегистрированный до AddStandardResilienceHandler, выполняется один раз на логический запрос, а не на каждую повторную попытку. Перенесите его после обработчика устойчивости и сделайте идемпотентным, потому что retry повторно отправляет тот же HttpRequestMessage. Проверено на Microsoft.Extensions.Http.Resilience 10.10.0 и 8.10.0.
Исправление: IConfiguration.Bind не заполняет свойство-массив или List<T> из appsettings.json
Биндер молча пропускает свойства-массивы без публичного сеттера, IReadOnlyList<T> только для чтения, поля и init-члены при генераторе исходного кода, а также добавляет элементы к значениям по умолчанию вместо их замены. Проверено на .NET 10.0.12 и 11 RC 1.
Как отключить проверку antiforgery для одной конечной точки формы в minimal API в ASP.NET Core 11
Вызовите .DisableAntiforgery() на этой одной конечной точке или на MapGroup. В ASP.NET Core 11 это отключает и middleware токенов, и новую автоматическую проверку CSRF. Измеренная матрица, ловушки приоритета и более узкие альтернативы.
Исправление: конечные точки API в ASP.NET Core возвращают 401 вместо перенаправления на страницу входа после обновления до .NET 10
В .NET 10 аутентификация через cookie отвечает API-подобным конечным точкам кодом 401/403 вместо перенаправления на страницу входа. Верните прежнее поведение для отдельной конечной точки, глобально или с помощью переключателя AppContext.
Как асинхронно создавать и распаковывать ZIP-файлы с помощью асинхронных API ZipArchive в .NET 11
Используйте ZipFile.CreateFromDirectoryAsync, ExtractToDirectoryAsync, ZipArchive.CreateAsync и ZipArchiveEntry.OpenAsync без скрытого синхронного ввода-вывода. Замеры на .NET 11 RC 1 и .NET 10.0.12, включая баг .NET 10, который до сих пор блокирует Kestrel.
Как привязать сложный объект из строки запроса с помощью [AsParameters] в minimal API в ASP.NET Core 11
Поставьте [AsParameters] на класс или record, чтобы привязать целый фильтр из строки запроса в minimal API в ASP.NET Core 11. Разбираем значения по умолчанию, массивы, перечисления, вложенные объекты, валидацию, OpenAPI и ошибку генератора Native AOT с позиционными record.
Юнионы C# в ASP.NET Core 11: тела запросов, SignalR и OpenAPI работают, query string нет
Команда ASP.NET Core описала, где типы union из C# 15 работают в .NET 11: тела запросов в minimal API и MVC, JsonHubProtocol в SignalR, Blazor и схемы anyOf в OpenAPI. Привязка из маршрута, query, заголовков и форм пока не поддерживается.
SignalR в .NET 11 RC 1 меняет истекающий токен, не разрывая соединение
API обновления аутентификации SignalR финализированы в .NET 11 RC 1: переименованные обратные вызовы у HubConnection, клиент на TypeScript и цепи Blazor Server, которые автоматически подхватывают обновлённый ClaimsPrincipal.
Вперёд