Токен защиты от подделки во внешнем интерфейсе Angular 9 и серверном интерфейсе API ASP.NET Core 3.1

Следуя руководству из этот предыдущий пост, я реализовал единственный ответ из этого поста в моем приложении. Но когда я пытаюсь выполнить POST для действия, я получаю сообщение об ошибке. Служба для типа «Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.ValidateAntiforgeryTokenAuthorizationFilter» не зарегистрирована.

Браузер имеет токен в файле cookie, и перехватчик добавляет токен в заголовок запроса как X-XSRF-TOKEN, как я и ожидал. Проблема в том, что он больше не попадает в API, когда я добавляю атрибут [ValidateAntiforgeryToken] к одному действию, которое я использую для тестирования, но делает это, когда я его удаляю.

Я не могу показать код из соображений конфиденциальности, но надеюсь, что внимательно следил за предыдущим примером. Я что-то пропустил где-то еще? ошибка заставляет меня думать, что это работает только с бритвенными страницами, но мое приложение вообще не использует бритвенные страницы. Я использую дизайн SPA в angular 9 с бэкэндом API asp.net core 3.1.

Мы будем очень признательны за любые советы.

Спасибо!


person DJBawb    schedule 09.07.2020    source источник
comment
Добро пожаловать в StackOverflow DJBawb. В случае, если вы не можете привести пример, вы можете попытаться воспроизвести проблему в онлайн-редакторе кода или создав новый небольшой проект. Это также часто помогает понять проблему и найти решение. Ошибка говорит о том, что вы неправильно зарегистрировали свой фильтр.   -  person Anatoli Klamer    schedule 10.07.2020
comment
Спасибо за ответ. В общем, где бы мне прописать фильтр? это то, что мне нужно обработать в методах Configure/ConfigureServices в Startup.cs? Мой код выглядит так же, как в примере, который я привел, поэтому мне показалось, что это проще, чем делиться кодом самостоятельно.   -  person DJBawb    schedule 10.07.2020
comment
Да, я бы начал с изучения Startup.cs. Иногда разработчики используют.clear() для набора сервисов, прежде чем добавлять свои собственные сервисы.   -  person Anatoli Klamer    schedule 13.07.2020