asp.net mvc - 存放userid的位置 - 整数?

时间:2010-02-15 00:30:22

标签: asp.net-mvc

我使用会话变量获得的氛围在ASP.NET MVC中被忽视了。

一旦用户登录,我想保留用户的userId,这样我就不必一直查询它。

ASP.NET MVC中最有效的方法是什么?

4 个答案:

答案 0 :(得分:18)

我曾经偶尔看到类似的问题,我无法弄清楚这种“氛围”的来源。这就是Session专门设计用于存储会话相关信息的内容。使用Session存储用户ID或类似信息绝对没有错。

答案 1 :(得分:8)

你有正确的氛围。在许多情况下,这是不必要的。会话状态很容易丢失并且经常被误用于处理登录用户(用户登录的设置是通过设置Session [“IsLoggedIn”] = true或通过检查Session [“User”]来完成的!!= null,突然会话消失,当应使用表单身份验证时,用户已注销)。在这里,您可以阅读有关表单身份验证和使用它存储其他数据的信息:

Forms Authentication Configuration and Advanced Topics

如果您仍想使用会话,最好创建包装器以使其更易于测试并删除代码中的字符串:

Wrapper for ASP.NET Session

答案 2 :(得分:2)

会话旨在用于有状态的用户交互 - 想到购物车。它们被低估了,因为它们很难测试并且倾向于强制序列化逻辑进入控制器。如果您只想最小化查询,则应使用缓存。

编辑: 很难得到HttpContext.Cache的教程。 Steven Sanderson在Pro ASP.net MVC Framework(Apress 2009)中有大约4页。 530-534。

Caching in asp.net-mvc也可能会给你一些提示。

答案 3 :(得分:0)

会话状态。如果不合适,不应该使用它。但是其他任何东西都不适用于凭证。只需确保它们是可序列化的,这样您就可以在需要时将会话推出。