- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个使用 asp.net 身份的 asp.net mvc 应用程序。
在 Startup.Auth.cs
文件中,我将 ExpireTimeSpan
设置为 20 天,但是当我登录我的应用程序时,不到 20 天我的应用程序就会注销,我必须登录在阿吉安!
Startup.Auth.cs
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, User>(
validateInterval: TimeSpan.FromMinutes(0),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
},
ExpireTimeSpan = TimeSpan.FromDays(20),
SlidingExpiration = true
});
在登录
操作中:
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: true);
<小时/>
更新
当我登录时,会生成 .AspNet.ApplicationCookie
,并将其过期日期设置为“20”天后,当我第二天打开网站时,我会注销,但 cookie 仍然存在。
这个问题的原因是什么?
提前致谢。
最佳答案
以下是比预期更早退出的几个原因:
同一域上有多个 Web 应用程序,并且所有应用程序都具有相同的 Cookie 名称
(Cookie 名称冲突)。在本例中,应用程序 A 会覆盖应用程序 B 的 cookie。
当 validateInterval
设置为零/TimeSpan.FromMinutes(0)
时,所有对 UpdateSecurityStamp
的调用都将强制用户立即注销并重新登录,包括UserManager.CreateAsync
、UserManager.RemovePasswordAsync
、UserManager.UpdatePassword
、UserManager.RemoveLoginAsync
、UserManager.ChangePhoneNumberAsync/SetPhoneNumberAsync
、UserManager.SetTwoFactorEnabledAsync
、UserManager.SetEmailAsync
。这意味着如果您更新用户的属性,将调用 UpdateSecurityStamp
。
.NET Framework
,它也会覆盖machine-key
。更改此设置会将所有已发布的 cookie 标记为无效。 Machine-Key 是一组用于加密和解密 cookie 的 key 。如果您在负载均衡器后面运行,您将需要确保网络场使用一致的机器 key
。用户声明
,它们将会变得很大(大于约 5K),并且某些浏览器会拒绝它们。因此请检查发出的 cookie 的大小。关于asp.net-mvc - 为什么在 asp.net 身份中注销早于 ExpireTimeSpan?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44994436/
我有以下代码: public void ConfigureAuth(IAppBuilder app) { app.UseCookieAuthentication(new
我正在使用 ASP.NET Identity 和基于 cookie 的身份验证。我在 CookieAuthenticationOptions 类上设置 ExpireTimeSpan 以控制在用户必须再
我在尝试设置 时遇到问题过期 我的 cookie 时间 CookieAuthentication ,看来ExpireTimeSpan只是被忽略,当我在浏览器中获取 cookie 时,它的过期时间设
我正在使用 Owin 的 cookie 身份验证在一段时间不活动后注销用户。问题是,我需要让用户知道他们的 session 将在“X”分钟后到期。 如何访问身份验证 cookie 以获取剩余时间?这甚
我正在开发一个使用 asp.net 身份的 asp.net mvc 应用程序。 在 Startup.Auth.cs 文件中,我将 ExpireTimeSpan 设置为 20 天,但是当我登录我的应用程
在 HttpContext.SignInAsync 和 Microsoft.AspNetCore.Authentication.Cookies 中传递给 Microsoft.AspNetCore.Au
我们有一个使用 Owin cookie 身份验证的 ASP.NET MVC 5 应用程序。目前,我们设置cookie认证如下: public partial class Startup { p
前言:我读过这个(ASP.NET MVC membership - user being logged out frequently - don't know why)和这个(ASP.NET Iden
我们有一个使用 Asp.Net 标识的产品,我们希望 cookie 过期时间是可配置的。ExpireTimeSpan 当前设置在 Visual Studio 使用新项目为您创建的 Startup.Co
我一整天都在为这个问题挠头。我正在尝试在 MVC Identity 2.0.1 中设置“非常长”的登录 session 。 (30 天)。 我使用以下 cookie 启动: app.Use
使用ASPNETCORE OpenId身份验证中间件和Cookie中间件。我总是看到来自 OpenId 身份验证的 cookie 设置为在 1969 年 12 月 31 日到期(在 Chrome 调试
我是一名优秀的程序员,十分优秀!