如何在asp.net-mvc中跟踪属于不同公司的用户? [复制]

Posted

技术标签:

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

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

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

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

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

ASP.NET MVC Global Variables

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

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

【问题讨论】:

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

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

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

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

Link 1

Link 2

【讨论】:

创建自定义属性不是我需要的。在为特定公司保存一些数据或获取一些数据时,我不希望调用用户对象来获取信息。我有一个分配全局变量的潜在解决方案,但我试图弄清楚它是否是正确的方法。您的答案超出了问题范围 用户身份对象已经在上下文中,每个请求都存在,所以我看不出它有多糟糕

以上是关于如何在asp.net-mvc中跟踪属于不同公司的用户? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

有人愤怒地使用带有 asp.net-mvc 的 Knockoutjs 吗? [关闭]

ASP.NET-MVC中Entity和Model之间的关系

asp.net-mvc:js文件中的剃刀'@'符号

剑道 DropDownListFor() 与 ASP.NET-MVC

在 asp.net-mvc 中,查询字符串太长会导致 404 File not found 错误吗?

在 asp.net-mvc 中从服务器读取文本文件的最佳方法是啥