Я много искал, но не нашел, как реализовать AutoValidateAntiforgeryToken.
Я создаю Angular 6 spa с TypeScript, подключаясь к конечной точке .NET Core 2.1
В ConfigureServices добавлено
services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN");
перед добавлением AddMvc() в Configure
app.Use(next => context =>
{
string path = context.Request.Path.Value;
if (string.Equals(path, "/", 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);
});
Документация Angular не ясна, если я правильно понял, я должен прочитать файл cookie с именем X-XSRF-TOKEN и передать его обратно в вызове http в качестве заголовка: но я пытаюсь прочитать этот файл cookie в angular (используя ngx-cookie-service, с код как this.cookieSvc.get("X-XSRF-TOKEN")) этот файл cookie пуст.
Если кто-то может помочь, спасибо.
XSRF-TOKEN
, но пытаетесь прочитать файл cookie с именемX-XSRF-TOKEN
. - person Kirk Larkin   schedule 19.09.2018