asp.net-mvc – ASP.NET Core MVC:设置身份cookie的到期
在我的ASP.NET Core MVC应用程序中,身份验证cookie的生命周期设置为“Session”,因此它一直持续到关闭浏览器.
我使用MVC的默认认证方案: app.UseIdentity(); 如何延长Cookie的使用寿命? 解决方法
您正在使用的ASP.NET身份中间件是对UseCookieAuthentication的一些调用,包括管道上的Cookie身份验证中间件.这可以在Identity中间件
here on GitHub的构建器扩展的源代码中看到.在这种情况下,配置底层Cookie身份验证应如何工作所需的选项将封装在IdentityOptions上,并在设置依赖注入时进行配置.
实际上,查看我链接到的源代码,可以看到当您调用app.UseIdentity()时,会运行以下内容: var options = app.ApplicationServices.GetRequiredService<IOptions<IdentityOptions>>().Value; app.UseCookieAuthentication(options.Cookies.ExternalCookie); app.UseCookieAuthentication(options.Cookies.TwoFactorRememberMeCookie); app.UseCookieAuthentication(options.Cookies.TwoFactorUserIdCookie); app.UseCookieAuthentication(options.Cookies.ApplicationCookie); return app; 要设置IdentityOptions类,AddIdentity< TUser,TRole>方法有一个重载版本,允许使用一个lambda配置选项.因此,您只需传递一个lambda来配置选项.在这种情况下,您只需访问选项类的Cookie属性,并根据需要配置ApplicationCookie.要改变你做的事情的时间间隔 services.AddIdentity<ApplicationUser,IdentityRole>(options => { options.Cookies.ApplicationCookie.ExpireTimeSpan = TimeSpan.FromHours(1); }); 编辑:ExpireTimeSpan属性仅在调用HttpContext.Authentication.SignInAsync时才会使用,我们将IsProperties设置为true的AuthenticationProperties实例中传递. 尝试使用Cookie认证中间件,事实证明这是有效的:如果我们刚刚登录没有这个选项,我们得到一个持续会话的cookie,如果我们一起发送,我们得到一个cookie,持续我们在配置时设置中间件 使用ASP.NET身份的方法是将值为true的PasswordSignInAsync的参数传递给参数.这最终是调用SignInAsync的HttpContext传递AuthenticationProperties中的IsPersistent设置为true.该通话最终是这样的: var result = await _signInManager.PasswordSignInAsync(model.Email,model.Password,model.RememberMe,lockoutOnFailure: false); 如果我们将IsPersistent设置为true或false,则RememberMe是哪些配置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core – IApplicationBuilder不包含UseStaticFiles
- 为什么在ASP.NET MVC中使用JsonResult时使用WCF REST?
- asp.net – .Net Core 2.0 – 获取AAD访问令牌以与Microsof
- asp.net – ‘InitializeCulture’不是其成员
- .NET Core采用的全新配置系统[1]: 读取配置数据
- asp.net-mvc – 多个DateTime参数的属性路由
- 全局导入/使用.NET中的别名
- asp.net-mvc – ASP MVC – 有默认内容类型的任何常量?
- asp.net-mvc – 如何在asp.net mvc 4中实现社交登录?
- 多终端数据同步机制设计(一)
- asp.net-mvc-3 – mvc razor editortemplate中的
- 可以将图像添加到ASP.NET按钮吗?
- asp.net – 为什么我收到此错误:System.Securit
- asp.net-mvc – 如何为登录表单的链接指定返回UR
- asp.net – 如何在Eval格式字符串中使用单引号
- asp.net-mvc-3 – 用MVC构建一个大型项目软件
- asp.net – 有人有一种方法来保持页面呈现一旦一
- Satellite Assembly,ASP.NET语言不变
- asp-classic – VBScript函数名称最大长度
- asp.net-mvc-3 – 如何在MVC3应用程序的页脚上显