ValidateAntiForgeryToken X-XSRF-TOKEN 400 приложение с ошибочными запросами с использованием. net core 1.0 и angular 1.5 - PullRequest
0 голосов
/ 10 января 2020

Может кто-нибудь подсказать мне, что я делаю не так, или предложить способы помочь мне разобраться в том, что происходит?

Я пытаюсь внедрить антиподделку с использованием net core 1.0 и angular 1.5

Я добавляю в Antiforgery в Startup.ConfigureServices

public void ConfigureServices(IServiceCollection services)
{            
           services.AddAntiforgery(options =>
                   {
                       options.HeaderName = "X-XSRF-TOKEN";
                       options.SuppressXFrameOptionsHeader = false;
                   });            
           services.AddApplicationInsightsTelemetry(Configuration);   
services.AddMvc().AddJsonOptions(options =>
           {
               options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
           });                     
}

и настраиваю повара ie в Configure

public void Configure(IApplicationBuilder app, IHostingEnvironment env, IAntiforgery antiforgery)
{            

            app.Use(next => context =>
            {
                string path = context.Request.Path.Value;

                if (
                    string.Equals(path, "/", StringComparison.OrdinalIgnoreCase) ||
                    string.Equals(path, "/index.html", StringComparison.OrdinalIgnoreCase))
                {
                    // The request token can be sent as a JavaScript-readable cookie, 
                    // and Angular uses it by default.
                    var tokens = antiforgery.GetAndStoreTokens(context);
                    context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken,
                        new CookieOptions() { HttpOnly = false });
                }

                return next(context);
            });

, и я украшаю контроллер

namespace myapp.Controllers
{
        [Authorize]        
        [Route("Profile")]
        [HttpPost]
        [ValidateAntiForgeryToken]
        public IActionResult Profile()
        {    

Пожалуйста, предложите, что я пропустил

...