登录时存储用户信息的选项
本文关键字:选项 信息 用户 存储 登录 | 更新日期: 2023-09-27 18:17:21
当他们登录到我的mvc4站点时,关于维护用户数据的一些选项是什么?我正在构建Internet应用程序模板,现在我正在使用User.Identity.Name
来获取他们用来登录的登录用户的用户名。我希望能够在网站的每个页面上存储和访问有关用户的其他几条信息。我是否仍然可以使用User.Identity
并对其应用其他属性?我开始建立一个ProfileModel
,我可以传递给视图,但后来我不相信我将能够传递其他模型给那些视图,不确定。
我愿意听取关于持久用户数据的建议,并感谢您的任何帮助。
编辑1:当我说持久时,我的意思是当他们登录时,数据本身已经存储在外部数据库中,所以我不会对这些信息进行任何写入,只是从数据库中提取它,然后在他们登录期间保留它。
您将需要利用Session
来实现这一点。考虑下面的代码:
Session["Profile"] = profileObj;
或者你只是想存储一个字符串:
Session["SomeSetting"] = value;
您需要在Session
中存储的内容不明确,并且实际上无关紧要,您可以存储任何内容。您可以从任意Controller
访问Session
。
然后你可以像这样得到值:
var profile = Session["Profile"];
// if the profile variable is null then it doesn't exist in Session yet
作为对@AaronLS的响应,Session
持续用户第一次访问站点时创建的IIS会话的持续时间。请记住,如果在一段时间内不活动,这些会话将被重置(我相信默认的IIS超时是20分钟),因此您希望利用null
返回值来知道您需要将用户重定向到登录页面以再次登录。