【问题标题】:How to store extra properties for IPrincipal-extension如何为 IPrincipal 扩展存储额外的属性
【发布时间】:2012-12-04 03:55:42
【问题描述】:

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

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

【问题讨论】:

标签: c# asp.net-mvc forms-authentication


【解决方案1】:

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

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

  1. 如果信息频繁更改并且您的 cookie 有效期较长,则将它们存储在 cookie 中可能会出现问题。在这种情况下,您可能需要实现一些使 cookie 过期的逻辑。
  2. 使用会话将要求您在会话超时后收到请求时刷新您存储的属性 - 这可能比 cookie 过期更频繁地发生。
  3. 每个Application_PostAuthenticateRequest 上的数据库请求可能证明效率低下,具体取决于流量,但这样做可以确保您始终拥有最新数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多