- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在努力了解 FormsAuthenticationTicket
类中的 isPersistent
属性的用途。 http://msdn.microsoft.com/en-us/library/kybcs83h.aspx
isPersistent
设置为 true 和 false?该属性似乎是多余的,因为我发现在浏览器 session 中保留我的用户身份验证 cookie 的唯一方法是设置创建票证后创建的 cookie 的 Expires
属性;即使门票的 isPersistent 值设置为 false
。
我还发现将 isPersistent
设置为 true 的票证到期时间(不是 cookie)设置为大约 10 秒几乎没有效果;票在 10 秒后过期。
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
identity.Name,
DateTime.Now,
DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes),
isPersistent,
JsonSerializerService.ToJson(identity),
FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.Path = FormsAuthentication.FormsCookiePath;
cookie.Expires = DateTime.Now.AddYears(1); // good for one year
我很感激我可以更改上面的代码以选择性地设置 expires
if (isPersistent)
cookie.Expires = DateTime.Now.AddYears(1); // good for one year
已在 GitHub 上创建了一个示例应用程序。 https://github.com/chrismoutray/AuthSample这基本上表明,即使将 isPersistent 标志设置为 true,跨浏览器授权也不起作用。
最佳答案
在框架 1.0/1.1 中,将 IsPersistent 设置为 true 会将 cookie 的有效期设置为 50 年。
在 2.0 版中,它已更改,因此 cookie 的到期时间与表单例份验证超时属性相匹配。因此,您可以将 IsPersistent 设置为 true,但 cookie 将始终在表单例份验证超时时间后过期。
如果您希望在不修改表单例份验证超时的情况下延长有效期,您的代码就可以解决问题。
编辑:我已经下载了您的示例并将您的 cookie 代码替换为
FormsAuthentication.SetAuthCookie(model.UserName, true);
它按预期工作:将两天配置为您的表单超时,我的 cookie 将在两天后过期。
关于c# - FormsAuthenticationTicket isPersistent 属性的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10345817/
我正在努力了解 FormsAuthenticationTicket 类中的 isPersistent 属性的用途。 http://msdn.microsoft.com/en-us/library/ky
我好像不太明白OWIN cookie认证中的IsPersistent是如何工作的,下面的代码是使用IsPersistent: var context = Request.GetOwinContext(
在 SQL Server 中,我们如何使用 T-SQL 关闭计算列的 PERSISTED 属性?我可以使用 Management Studio GUI 执行此操作,但不知道如何使用 T-SQL 执行此
我有一个 asp.net MVC/angular 应用程序(不是 .net core)使用 OpenIdConnect 对我们的 IdentityServer4 服务器进行身份验证。身份服务器上的登录
我有一个 ASP.NET MVC 5应用程序使用 ASP.NET Identity 2.1.0用于用户身份验证。 过去一切正常,但现在我发现持久化用户 session 不再起作用了。我不知道是什么改变
我有一个使用 ASP.NET Identity 的 ASP.NET MVC 5.0 项目。当用户登录时,我使用此功能通过系统跟踪用户。 SignInManager.SignIn(user,IsPers
我知道这个问题似乎已经有人问过了,但这与 ASP.NET Core 而不是 ASP.NET 5 有关。 当用户关闭浏览器选项卡时,我试图让用户注销;我正在 MacOS 上使用 Chrome 和 Saf
我将 WIF 与 WS Federation 结合使用,以便我的 ASP.NET 应用程序可以针对 STS (Thinktecture IdentityServer) 进行身份验证。在我的 RP 中,
使用ASPNETCORE OpenId身份验证中间件和Cookie中间件。我总是看到来自 OpenId 身份验证的 cookie 设置为在 1969 年 12 月 31 日到期(在 Chrome 调试
我是一名优秀的程序员,十分优秀!