FormsAuthentication.SetAuthCookie()是否创建基于会话的cookie?

时间:2009-08-26 15:14:06

标签: asp.net

好吧我很困惑,asp.net中的FormsAuthentication.SetAuthCookie()是否创建了基于会话的cookie?从我收集的东西到会话中你会在后面的代码中做这样的事情:

Session["userAge"] = 25;

现在无论是否创建了cookie,它都可以作为服务器端,所以我很困惑,当我读到你可以有会话和无会话cookie时,如果是这样,你如何创建每个cookie以及如何访问.net中的cookie中的esssion变量

2 个答案:

答案 0 :(得分:21)

这是一种常见的混淆。 Session和FormsAuthentication是两个独立的概念 - 它们具有独立的超时和独立的cookie(如果你使用的是无Cookie会话,则没有cookie。)

服务器上的会话由唯一的cookie标识,即使对于匿名用户也是如此。此cookie包含与FormsAuthentication无关的SessionID。

FormsAuthentication cookie包含许多内容,其中最重要的是身份验证票证。此票证是一个加密的信息位,用于根据提供的登录凭据标识用户。有一个很好的分步流程图和解释票据in this MSDN article中的内容。

答案 1 :(得分:2)

我不确定你问的是什么,但如果你的问题是如何在没有auth cookie的情况下访问Session["userAge"],答案是因为它是与会话分开的实体。

auth cookie(默认名称.ASPXAUTH)是在会话开始之前创建的,因此它不能基于会话。