У меня та же проблема с cookie-файлами на сайте, которую я замечал во время обхода. Я использую AzureAD, и когда я применяю исправления, которые там есть, я все еще не могу остановить бесконечный цикл в IOS12.
Я прочитал эту страницу и эту детализацию, установив SameSiteMode в None. Я что-то пропустил?
.NET Core 2.1, AzureAD
Вот мой класс запуска:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options))
.AddCookie(options=>options.Cookie.SameSite = SameSiteMode.None)
.Services.ConfigureExternalCookie(options =>
{
options.Cookie = new Microsoft.AspNetCore.Http.CookieBuilder()
{
SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None
};
});
services.AddMvc(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors(builder =>
{
// cannot be set to AllowAnyOrigin, because then the response is not accepted, because the credentials are included
builder.WithOrigins("https://*.sharepoint.com")
.SetIsOriginAllowedToAllowWildcardSubdomains()
.AllowCredentials();
});
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy(new CookiePolicyOptions()
{
MinimumSameSitePolicy = SameSiteMode.None
});
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
РЕДАКТИРОВАТЬ: у меня есть другое приложение, развернутое в том же окне, у которого нет той же проблемы бесконечного цикла. Я скопировал конфигурацию, чтобы соответствовать этому приложению, и она все еще не работает. Оба новых приложения .NET Core 2.1.
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
sharedOptions.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddAzureAd(options => Configuration.Bind("AzureAd", options))
.AddCookie();
И
app.UseAuthentication();
Может кто-нибудь помочь?