在哪里可以使用ASP.NET MVC和MembershipProvider持久保存用户所属的公司?

时间:2009-06-10 21:26:02

标签: asp.net-mvc linq asp.net-membership

当用户登录我的ASP.NET MVC应用程序时,我需要保留该用户所属的公司。他们所属的公司将确定他们的查询来自哪个数据库〜所以对我来说,一旦他们登录并持续查询他们的公司是很重要的,所以我不必再次执行此查找。

我/我应该如何存储此公司ID?会议?一些自定义MembershipProvider的方法可以让我在User对象中保留这些信息吗?

处理此问题的最佳方法是什么?从字面上看,我之后所做的每一个查询都会依赖于公司ID,因此保留这些信息非常重要。

3 个答案:

答案 0 :(得分:1)

您可以使用ASP.NET的配置文件属性,但您需要为它们创建自己的处理程序。查看Seventh Element对this question的回答,了解如何入门。

答案 1 :(得分:1)

您可以write your own Auth module扩展FormsAuthentication并将公司存储在IPrincipal中。

然后你就像User.Identity.Name一样做User.Identity.Company。

这比将公司坚持在已经存在的存储桶(例如Cache或Session)中更为前瞻性,但它可以让您在连接完所有内容后编写一些非常轻松的代码。

答案 2 :(得分:0)

我会把它放到会话中,因为在你的情况下,使用配置文件意味着每次数据库调用都需要额外往返数据包。

如果您在每个动作方法中都无论如何都要访问该个人资料,那么您应该在场外使用它。