У меня есть приложение angular 5 и приложение веб-API .net core 2.0, размещенное на лазурном сервере в качестве служб приложений. У приложений есть два URL-адреса, как показано ниже.
angularclient.azurewebsites.net
serviceapi.azurewebsites.net
Проблема, с которой я столкнулся, заключается в том, что приложение angular не получает файл cookie .AspNetCore.Antiforgery, который отправляется serviceapi. Запрос на отправку HTTP, сгенерированный приложением angular, имеет заголовок withCredentials: true. Я определил политику cors в сервисном API, как показано ниже.
app.UseCors(builder => builder.WithOrigins("angularclient.azurewebsites.net").AllowAnyMethod().AllowAnyHeader());
Я отправил запрос через POSTMAN и проверяю, отправляются ли файлы cookie сервером. Файлы cookie для запроса POSTMAN принимаются без каких-либо проблем. Когда я размещаю приложения на своем тестовом сервере IIS и проверяю. В этой среде приложение работает нормально. Помогите найти решение этого вопроса.
services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN");
app.UseAntiforgeryTokenMiddleware("X-XSRF-TOKEN");
В конфигурации промежуточного программного обеспечения приложения, как показано нижеcontext.Response.Cookies.Append(requestTokenCookieName, tokens.RequestToken, new CookieOptions() { HttpOnly = false });
- person bhathiya.m   schedule 14.12.2018ConfigureServices
иConfigure
методы? Если он слишком длинный, скройте не связанные части. Настройка CORS должна произойти до вызоваAddMvc
. - person jpgrassi   schedule 14.12.2018context.Response.Cookies.Append..
используйте это для имени файла cookieXSRF-TOKEN
. Это имя файла cookie по умолчанию, которое будет искать angular, а неX-XSRF-TOKEN
, когда вы проходите. - person jpgrassi   schedule 14.12.2018