Может кто-нибудь подсказать мне, что я делаю не так, или предложить способы помочь мне разобраться в том, что происходит?
Я пытаюсь внедрить антиподделку с использованием 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()
{
Пожалуйста, предложите, что я пропустил