如何在Asp.Net MVC 5应用程序中存储每个用户会话的记录公司ID

时间:2014-09-30 07:14:12

标签: asp.net-mvc session cookies

我有一个登录视图,它接受一个CompanyId以及用户名和密码。登录后,公司ID将用于整个用户会话,以过滤数据库中的数据。

实现这一目标的正确方法是什么?我还希望将此公司ID与用户名和密码一起存储在cookie中,这样即使用户关闭浏览器并再次打开,公司ID仍然存在。或者需要一种机制,即使用户在发现公司ID为空时默认通过cookie登录,也必须将用户重定向到登录页面。

请帮忙...... Noufal

1 个答案:

答案 0 :(得分:1)

正确的工作流程可能是:

  1. 仅使用用户名和密码登录
  2. 从数据库中获取用户公司ID(用户应在注册过程中输入companyId)
  3. 将用户电子邮件存储在身份验证Cookie中(这将是唯一的用户标识符)
  4. 在全局asax中的Application_PostAuthenticateRequest事件上从DB加载companyId,并使用此信息扩展当前主体(Thread.CurrentPrincipal,HttpContext.Current.User)。