【问题标题】:How to keep track of users that belong to different companies in asp.net-mvc? [duplicate]如何在asp.net-mvc中跟踪属于不同公司的用户? [复制]
【发布时间】:2017-01-05 19:12:33
【问题描述】:

我有一个应用程序,我在实体框架 IDENTITY 的帮助下创建了身份验证登录。

这个应用程序的重点很多,但就这个问题的相关性而言,它应该被几个用户使用,甚至可能属于不同的公司。为此,我在数据库的用户表中分配了一个 OrgId。

我想弄清楚的是获得这个 OrgId 的最佳方式。 每次用户登录时,我都会收到此信息,但我不想检查每个请求的用户信息或保存到数据库。

在搜索这个时,我偶然发现了一个全局变量,如下所示:

ASP.NET MVC Global Variables

这让我知道如何做到这一点,但我不想在几周后陷入僵局并意识到这不是最好的方法。

我正在寻找一种完成我想做的事情的好方法,优点,缺点等。

【问题讨论】:

  • 如果您不想将身份与声明一起使用,请考虑创建一个自定义 IPrincipal,将组织 ID 添加到 FormAuthenticationTicket 以便在每个请求中都可用。典型实现参考this question and its accepted answer

标签: asp.net asp.net-mvc asp.net-mvc-5 asp.net-identity


【解决方案1】:

如果您使用的是 ASP.NET Identity,我建议您使用声明来设置有关用户的其他信息。

身份验证成功后,您可以设置声明。

有关详细信息,请参阅以下内容:

Link 1

Link 2

【讨论】:

  • 创建自定义属性不是我需要的。在为特定公司保存一些数据或获取一些数据时,我不希望调用用户对象来获取信息。我有一个分配全局变量的潜在解决方案,但我试图弄清楚它是否是正确的方法。您的答案超出了问题范围
  • 用户身份对象已经在上下文中,每个请求都存在,所以我看不出它有多糟糕
猜你喜欢
  • 1970-01-01
  • 2015-04-04
  • 2014-06-18
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
相关资源
最近更新 更多