1

在用户登录到我的 mvc4 站点时维护用户数据有哪些选择?我正在构建 Internet 应用程序模板,现在我正在使用User.Identity.Name它来获取他们用来登录的登录用户的用户名。我还希望能够在网站的每个页面上存储和访问有关用户的其他几条信息。我还能User.Identity以某种方式使用并对其应用其他属性吗?我开始构建一个ProfileModel可以传递给视图的模型,但是我不相信我能够将其他模型传递给这些视图,不确定。

我愿意接受有关持久用户数据的建议,并感谢您的帮助。

编辑1:当我说持久性时,我的意思是当他们登录时,数据本身已经存储在外部数据库中,所以我不会写这些信息,只需从数据库中提取它,然后保持在他们登录期间。

4

1 回答 1

4

你会想要利用Session这一点。考虑以下代码:

Session["Profile"] = profileObj;

或者您可能只想存储一个字符串:

Session["SomeSetting"] = value;

您需要存储的Session内容不清楚,并且实际上无关紧要,您可以存储任何内容。您可以Session从任何Controller.

然后稍后您可以像这样获取值:

var profile = Session["Profile"];

// if the profile variable is null then it doesn't exist in Session yet

响应@AaronLS,Session持续用户第一次访问站点时创建的 IIS 会话的持续时间。请记住,如果一段时间内不活动,这些会话将被重置(我相信默认的 IIS 超时为 20 分钟),因此您希望利用null返回值来了解您需要将用户重定向到登录页面再次登录。

于 2013-06-06T20:25:14.370 回答