您似乎对您的身份验证过程比较满意,但您想探索会话/设置的其他选项。
我的建议仅与设置有关(角色、偏好等)
在我看来,不得不遍历从 UI 到业务层再到数据库层再到数据库的整个技术堆栈有时有点矫枉过正。对于在会话期间不太可能更改的数据,这会增加很多开销...可能会发生几种数据转换(DB(关系格式)-> ORM-> Web 服务 XML 序列化-> Web 层反序列化) .
您可能会考虑一个不依赖于繁重的 RDBMS 系统或 ASP.NET 缓存/会话模型的会话系统。有些选项性能非常好并且可以很好地扩展。
您可以使用Ayende Rahien 的RavenDB(为 .NET 构建)。它的主要目标是提供对无模式 JSON 文档的低延迟、高性能访问。
使用此解决方案,您将在 Web 层设置 ravenDB,以便非常快速地访问数据。第一次验证和检索设置时,您会将用户 ID 和设置信息存储在此会话数据库中。之后每次加载控制器时,都可以访问设置数据,而无需返回 RDBMS。该数据库还可用于缓存其他与 Web 相关的数据。
至于安全性,无论您使用何种方法,设置数据都会进入 Web 层。此解决方案不会比其他选项更安全或更不安全(比未加密的 cookie 更安全)。如果需要,您可以加密会话数据 - 但这会再次增加您的开销。
只是要考虑的百万种选择中的另一种。
祝你好运,
让我们知道您的决定!
帕特里克。