【发布时间】:2018-05-06 17:43:33
【问题描述】:
我在 Asp.net core 2.0 mvc-template 中构建一个 Web 应用程序,我将 ExpireTimeSpan 设置为 365 天,但是当我关闭浏览器并在几分钟后我回到该站点时, 它将我重定向到登录路径,我检查存储在浏览器中的 cookie 我看到 cookie 设置为 365 天后,这意味着我在哪里犯了错误?
在我的 ConfigureServices 方法中:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlite("Data Source=DataBaseContext.db"));
services.AddIdentity<ApplicationUser, IdentityRole>(option =>
{
option.Password.RequireDigit = false;
option.Password.RequiredLength = 5;
option.Password.RequireLowercase = false;
option.Password.RequireNonAlphanumeric = false;
option.Password.RequireUppercase = false;
option.User.RequireUniqueEmail = false;
}
)
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie();
services.ConfigureApplicationCookie(Option => {
Option.LoginPath = "/Account/UserChalenge";
Option.ExpireTimeSpan = TimeSpan.FromDays(365);
Option.SlidingExpiration = true;
});
// Add application services.
services.AddTransient<IEmailSender, EmailSender>();
services.AddDetection();
services.AddMvc().AddSessionStateTempDataProvider().AddCookieTempDataProvider();
services.AddSession();
}
在配置方法中:
public void Configure(IApplicationBuilder app, IHostingEnvironment env )
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseAuthentication();
app.UseSession();
// ... use mvc template
});
}
【问题讨论】:
-
在本地服务器上工作正常,但在主机上不工作
-
您的
services.AddAuthentication()配置在哪里? -
嗨,谢谢,我在 services.ConfigureApplicationCookie 之前添加了这一行,但工作量不大:
-
问题是为什么在我本地的 iis express 中它工作得很好,但在主机上工作?是否与iis idel timout重启有关?
标签: asp.net-core asp.net-identity