【发布时间】:2019-07-19 09:35:07
【问题描述】:
在 Chrome、FireFox 甚至 IE 上设置会话 cookie,但在 Edge 上没有设置
浏览器版本为Microsoft Edge 42.17134.1.0
DotNet 核心版本为2.1
我的startup.cs文件中使用了以下信息
public void ConfigureServices(IServiceCollection services) {
services.Configure < CookiePolicyOptions > (options => {
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddJsonOptions(options => {
options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
}).AddSessionStateTempDataProvider();
services.AddDistributedMemoryCache();
services.AddSession(o => {
o.IdleTimeout = TimeSpan.FromMinutes(80);
o.Cookie.HttpOnly = true;
o.Cookie.Name = "my-session-cookie";
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
} else {
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseSession();
app.UseSpaStaticFiles();
app.UseMvc(routes => {
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa => {
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment()) {
spa.UseReactDevelopmentServer(npmScript: "start");
}
});
}
以下是我目前尝试过的一些方法:
- 将
IsEssential条件添加到会话选项 - 删除
CookiePolicyOptions和UseCookiePolicy - 尝试向会话 cookie 添加过期日期(甚至没有启动解决方案)
【问题讨论】:
-
碰巧,您是否尝试在 Edge 打开新选项卡/窗口后设置 cookie?
-
@PaulCream 不,会话 cookie 应该直接在应用程序启动时设置,仅供参考,我发现问题出在哪里,我会发布答案
标签: session cookies .net-core session-cookies microsoft-edge