Как настроить файл cookie проверки подлинности домена с поддержкой CORS .Net Core? - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь аутентифицировать исходные запросы CORS и установить принцип утверждений с пользователем единой учетной записи внутренней компании.Пока у меня есть текущие настройки, cookie никогда не будет создан на домене, установленном при настройке аутентификации.

У меня есть клиентское приложение Angular и .Net Core 3.0 Webapi, требование к клиенту должно бытьвозможность установить аутентификацию для будущих вызовов API.


services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>

{   
    options.Cookie.Name = "access_token";
    options.Cookie.SameSite = SameSiteMode.None;
    options.Cookie.Domain = "localhost:xxxx";

});

//CORS
services.AddCors(options =>
    {
        options.AddPolicy(
            "AllowOrigin",
            builder => builder.WithOrigins("localhost:xxxx")
                .AllowCredentials()
                .AllowAnyHeader()
                .AllowAnyMethod());
    });

//Sign In 
HttpContext.SignInAsync(
        scheme: CookieAuthenticationDefaults.AuthenticationScheme,
        principal: new ClaimsPrincipal(new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme)),
        properties: new AuthenticationProperties { ExpiresUtc = DateTime.Now.Add(120) });

Я тестирую все это на локальном, поэтому оба URL-адреса являются локальными с разными портами. Angular размещен: http://localhost:xxxx размещен WebAPi: http://localhost:xxx2

http-запрос от Angular к webapi - http://localhost:xxx2/api/auth, в котором есть вызов SignInAsync, единый знак компании делает имя пользователя, но cookie не создается.Если я удаляю options.Cookie.Domain = "localhost:xxxx";, то cookie создается в домене webapi http://localhost:xxx2.Должно быть, я что-то здесь упускаю.

...