C# 关于FormAuthentication方法中IsPersistant参数的查询

C# 关于FormAuthentication方法中IsPersistant参数的查询,c#,asp.net,asp.net-3.5,C#,Asp.net,Asp.net 3.5,ASP.NET提供了以下手动创建表单身份验证cookie的方法 public FormsAuthenticationTicket(int version, string name, System.DateTime issueDate, System.DateTime expiration, bool isPersistent, string userData, string cookiePath) 如果我将isPersistent设置为false,并将expiration设置为更大的值,如从现

ASP.NET提供了以下手动创建表单身份验证cookie的方法

public FormsAuthenticationTicket(int version, string name, System.DateTime issueDate, System.DateTime expiration, bool isPersistent, string userData, string cookiePath)
如果我将isPersistent设置为false,并将expiration设置为更大的值,如从现在起1周,会怎么样。在这种情况下,当用户关闭浏览器时会发生什么情况?如果再次打开浏览器,则会对其进行身份验证。据我所知,将isPersistant设置为false(在本例中不考虑过期日期)意味着用户在关闭浏览器后将不会得到身份验证,并且在重新打开浏览器后将是匿名的


isPersistant false和有效到期日期同时意味着什么?

身份验证数据将包含在每个请求/响应中,而不会保留在cookie中。当用户关闭并重新打开浏览器时,需要新的身份验证


有关大量信息,请参阅此线程:

使用类似于以下代码的代码,您的cookie将持续一周,直到过期:

HttpCookie theCookie = FormsAuthentication.GetAuthCookie("theUser", false);

theCookie.Expires = DateTime.Now.AddDays(7);

Response.SetCookie(theCookie);
“持久性”cookie与非持久性cookie的唯一区别在于后者的到期时间设置为“会话”。确认这一点的最简单方法是测试它。从我的简短试验来看,它运行正常,没有任何意外

您所引用的类主要由
FormsAuthentication
内部使用,我认为,如果可以通过类上的静态成员函数实现目标,那么它不应该是您实现目标的主要方法,它提供给您作为访问库包含的所有功能的助手。例如,
FormsAuthenticationTicket
类是的输出,它将为您提供有关在cookie值中加密的数据的信息。您不应该使用它在代码中创建身份验证cookie

编辑


关于同时设置这两个属性的“含义”,这意味着,在加密的票证数据中给定了持久性标志,一旦票证过期,每次用户访问时都将续订
FormsAuthentication
将调用以无限期保留票据。使用
FormsAuthentication.SetAuthCookie
FormsAuthentication.GetAuthCookie
helper方法标记票据持久性时的默认行为将初始化票据的加密数据,过期日期设置为创建票据时的当前日期和时间。可以通过调用
FormsAuthentication.GetAuthCookie
并调用
FormsAuthentication.Decrypt
来确认这一点,方法是使用收到的
HttpCookie
Value
属性。如果您检查票证的
过期
属性,您会发现它被设置为当前日期和时间。

在缓存完成之前,身份验证将发挥作用。您能否回答“isPersistant false和有效过期日期同时意味着什么?”我的意思是说,如果我将isPersistant设置为false,过期时间会起作用吗?