Серверные куки не работают в ядре .net - PullRequest
0 голосов
/ 13 марта 2019

Я использую ядро ​​веб-API с угловым 6 для аутентификации я использую Identity с сервером куки все работает хорошо, но когда я хочу использовать [Authorize] Attribute с ролью или не выше какого-либо действия, он всегда возвращает 401 как несанкционированный запрос.

В Startup.ConfigureServices:

services.AddIdentity<User, IdentityRole>(options =>
            {

                options.Password.RequiredLength = 8;
                options.Password.RequireLowercase = true;
                options.Password.RequireUppercase = true;
                options.Password.RequireDigit = true;
                options.Password.RequireNonAlphanumeric = true;
                options.Lockout.DefaultLockoutTimeSpan =
                    TimeSpan.FromMinutes(Convert.ToInt32(_config["Tokens:accessFailedwaitingMin"]));
                options.Lockout.MaxFailedAccessAttempts = Convert.ToInt32(_config["Tokens:accessFailedCount"]);
                options.Lockout.AllowedForNewUsers = true;
            }).AddEntityFrameworkStores<MyDbContext>()
            .AddDefaultTokenProviders();


        services.ConfigureApplicationCookie(options =>
        {
            // Override the default events
            options.Events = new CookieAuthenticationEvents
            {
                OnRedirectToAccessDenied = ReplaceRedirectorWithStatusCode(HttpStatusCode.Forbidden),
                OnRedirectToLogin = ReplaceRedirectorWithStatusCode(HttpStatusCode.Unauthorized)
            };

            // Configure our application cookie
            options.Cookie.Name = ".test";
            options.Cookie.HttpOnly = true; // This must be true to prevent XSS
            //options.Cookie.SameSite = SameSiteMode.None;
            options.Cookie.SecurePolicy = CookieSecurePolicy.None; // Should ideally be "Always"

            options.SlidingExpiration = true;

        });



        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

А в Startup.Configure

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}

app.UseCors("CorsPolicy");
app.UseCookiePolicy();
//app.UseHttpsRedirection();
app.UseMvc();

Примечание: однако я использую куки-файлы сервера, эти куки с именем '.test' не пришли в браузер, это изображение будет означать, что: enter image description here

...