asp.net-mvc - 用于存储用户信息的 MVC Session 与 DB 调用

标签 asp.net-mvc asp.net-mvc-4 session umbraco

我有一个用户详细信息区域,分为大约 6 个不同的页面(详细信息、联系方式、首选项等)。我需要在登录后访问所有用户详细信息。

我打算在登录后将用户详细信息添加到这样的 session 中,以便我可以从不同的页面访问它们,而不必在每个页面上调用数据库;

Session["name"] = name;
Session["bla"] = bla;

但是我在谷歌上搜索过,有些人谈论将 session 保存到数据库,这听起来我最好不要使用它。用户可能不会访问每个页面或需要访问所有这些信息,因此可能会被认为没有必要将它们全部添加到 session 中。

是否有像这样存储用户信息的推荐做法?我还有一个需要在每个页面上显示的 ID。也许这样的东西对于 session 和更详细的信息页面来说更好,以便与他们自己的数据库调用保持一致?

.

编辑:我正在使用 Umbraco 7.2.8,并从 MemberService 获取成员(member)详细信息。我担心它每次都会访问数据库。我获取成员详细信息以及自定义成员属性(当前在每个 Controller 中)的代码是:

        // Get the details of the user currently logged in
        var profileModel = Members.GetCurrentMemberProfileModel();

        // Get the custom properties for the member
        var member = memberService.GetByUsername(profileModel.UserName);

        model.Firstname = profileModel.Name;
        model.Email = profileModel.Email;
        model.specialID = member.Properties["specialID"].Value.ToString();

任何指针都会很棒!

最佳答案

如果您使用内置的 Umbraco 成员(member)服务( link 1link 2 )来管理您的用户,您将有一个相对简单的方法来获取 current logged in member 。使用自定义数据字段等管理成员(member)资料也很容易。无需过多考虑 session 等问题。

编辑:take a look in here - specifically the GetCurrentPersistedMember() method - Umbraco 正在使用缓存来保存当前成员

关于asp.net-mvc - 用于存储用户信息的 MVC Session 与 DB 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630306/

相关文章:

asp.net-mvc - 自定义用户表上的 SimpleMembership CreateUserAndAccount IDENTITY_INSERT 错误

javascript - Google 的饼图安全吗?

java - 没有 cookie 的 Servlet session + 仅返回 JSON 的 ajax 请求

c# - 无法使用枚举隐式转换类型

asp.net-mvc-4 - 哪个machineKey配置更好?

django - "Refresh"Django session 变量以避免 session 超时?

c# - 将 WebJobs 与 Azure 服务总线和 session 一起使用

c# - 为什么我的对象不为空

javascript - ASP.NET MVC 4 JS 缩小错误

javascript - JSON.stringify 奇怪的行为