0

我正在尝试扩展IPrincipal. 存储额外属性的最佳方式是什么?

  1. 将它们序列化为 cookie 并在每个Application_PostAuthenticateRequest
  2. 将它们存储在会话中
  3. 对每个数据库发出请求Application_PostAuthenticateRequest
4

1 回答 1

0

就我而言,我选择了第一个选项,因为它代表了将信息合并到现有身份验证工作流程中的最简单(也是最有效)的方式。

我认为您的答案实际上取决于您要存储的额外属性的性质。

  1. 如果信息经常更改并且您的 cookie 有效期很长,那么将它们存储在 cookie 中可能会出现问题。在这种情况下,您可能希望实现一些使 cookie 过期的逻辑。
  2. 使用会话将要求您在会话超时后出现请求时刷新您存储的属性 - 这可能比 cookie 过期更频繁地发生。
  3. 根据流量,每个数据库请求Application_PostAuthenticateRequest可能证明效率低下,但这样做可以确保您始终拥有最新数据。
于 2012-12-04T04:38:20.493 回答