По замыслу ключ должен обновляться после авторизации.
имаюсь вебAPI
приложение работает с использованиемasp.net core2
а такжеAngular
, Подробная конфигурация среды разработкиВот, Я пытаюсь настроитьAntiForgeryToken
проверка, но она продолжает терпеть неудачу. Я следил за конфигом.Вот, но мне пришлось изменить его, так как мое угловое приложение и серверы asp.net работают на двух разных портах, потому что запуск внешнего интерфейса не генерирует токен. Я запускаю бэкэнд, вызываяAPI
дорожка (/api/Account/ContactInitialization
) в компоненте приложенияngOnInit
что позволило мне сгенерировать токен. Конфиг показан ниже,
IServiceCollection
Обслуживание:
services.AddAntiforgery(options =>
{
options.HeaderName = "X-CSRF-TOKEN";
options.SuppressXFrameOptionsHeader = false;
});
и вIApplicationBuilder Configure
:
app.Use(next => context =>
{
string path = context.Request.Path.Value;
if (
string.Equals(path, "/", StringComparison.OrdinalIgnoreCase) ||
string.Equals(path, "/api/Account/ContactInitialization", StringComparison.OrdinalIgnoreCase) ||
string.Equals(path, "/index.html", StringComparison.OrdinalIgnoreCase))
{
// We can send the request token as a JavaScript-readable cookie,
// and Angular will use it by default.
var tokens = antiforgery.GetAndStoreTokens(context);
context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken,
new CookieOptions() { HttpOnly = false });
}
return next(context);
});
asp.net. генерирует два набора ключей,
Я украсил свой метод[ValidateAntiForgeryToken]
и я включилXSRF-TOKEN
содержание куки в моем заголовке запроса. пока я продолжаю получать400 (Bad Request)
ответ после вызоваAPI
! что мне здесь не хватает?
Метод Контроллера,
[Authorize]
[ValidateAntiForgeryToken]
[HttpPost]
public IEnumerable<string> AutherizeCookie()
{
return new string[] { "Hello", "Auth Cookie" };
}
мой подробный запрос заголовка выглядит ниже,