【问题标题】:How to Store Logged Company Id Per User Session in Asp.Net MVC 5 Application如何在 Asp.Net MVC 5 应用程序中存储每个用户会话记录的公司 ID
【发布时间】:2014-11-24 17:29:49
【问题描述】:

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

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

请帮忙.... 努法尔

【问题讨论】:

    标签: asp.net-mvc session cookies


    【解决方案1】:

    正确的工作流程可能是:

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

    【讨论】:

    • 非常感谢 MajoB。我的情况略有不同,我有九个共享相同架构的旧数据库,即每个公司一个数据库。用户单独存储在 NetSqlAzman 数据库中。用户必须能够在登录过程中选择公司(数据库),并且该公司 ID 将用于识别将在整个会话期间使用的正确数据库,除非用户注销并选择另一个。请在这种情况下扩展您的答案。并且还想进一步了解您的第四点,特别是如何使用公司 ID 扩展当前本金。提前致谢
    猜你喜欢
    • 2016-09-27
    • 2011-03-10
    • 1970-01-01
    • 2017-06-06
    • 2014-08-31
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2010-11-01
    相关资源
    最近更新 更多