1

为什么我们需要第二种机制,例如表单身份验证机制,以保持状态?我对为什么使用会话令牌有很好的理解。我也了解表单身份验证机制。我不明白为什么我们需要这两个。

由于 formauth cookie 是独一无二的,我们可以使用它来跟踪用户的状态,对吧?我觉得这会更安全:我们跟踪状态,并且我们知道用户已经过身份验证。我用谷歌搜索了很多,而且经常有人说,在 asp 中,将 sessionid 和身份验证令牌链接在一起是一种很好的做法......这实际上与只使用两者中的一个相同,不是吗?

我可以想到我们需要匿名状态的一种情况是在用户不一定需要登录的应用程序中。但话又说回来,我们有匿名身份验证,对吗?

4

2 回答 2

1

会话和身份验证模块可以单独换出。这会增加他们尝试相互检测的复杂性,以便在这种情况下他们可以共享 cookie。

它还会(出乎意料地)将操作链接在一起。例如,退出应用程序会导致会话被删除。这可能是首选,但它仅适用于特定的模块组合。

如果您愿意,您可以自由扩展默认模块以共享相同的 cookie。您甚至可以通过更改 web.config 中的设置来强制他们使用相同的 cookie。

于 2013-09-16T22:14:32.487 回答
1

在 ASP 的早期,会话经常被用作身份验证 cookie。虽然 auth 和 session cookie 在简单的情况下重叠,但在很多情况下它们需要分开。

  • auth 由 ASP.NET 以外的其他东西处理
  • 会话保持,但身份验证已过期(例如亚马逊购物车)
  • session 可以过期,但 auth cookie 是持久的(例如记住我的登录)
于 2013-09-17T12:46:12.907 回答