Asp.net 如何获取已登录用户的列表?

Asp.net 如何获取已登录用户的列表?,asp.net,asp.net-web-api,auth0,Asp.net,Asp.net Web Api,Auth0,我不知道如何进一步缩小这个问题的范围:我们正在使用Auth0和WebApi 2。我需要显示当前登录的所有用户的列表。更具体地说,Auth0发出一个令牌,然后将该令牌与每个请求一起发送到我们的WebApi。我想,每次使用特定令牌向任何控制器发出请求时,我都需要将令牌和关联id写入数据库?有人能给我一个大致的想法,我是否在这里的正确道路上,或者我应该读什么 Auth0文档没有什么帮助,因为这似乎是一个不寻常的要求。同: 我不关心客户端。只是需要在服务器上运行的方式 编辑:我在评论中为这个问题添加了另

我不知道如何进一步缩小这个问题的范围:我们正在使用Auth0和WebApi 2。我需要显示当前登录的所有用户的列表。更具体地说,Auth0发出一个令牌,然后将该令牌与每个请求一起发送到我们的WebApi。我想,每次使用特定令牌向任何控制器发出请求时,我都需要将令牌和关联id写入数据库?有人能给我一个大致的想法,我是否在这里的正确道路上,或者我应该读什么

Auth0文档没有什么帮助,因为这似乎是一个不寻常的要求。同:

我不关心客户端。只是需要在服务器上运行的方式


编辑:我在评论中为这个问题添加了另一部分:我还想知道如何撤销令牌,立即生效。要理解这一点,我相信我需要确切地了解后端如何验证前端发送的令牌,以及是否为此调用了Auth0的服务器

我是Auth0的开发者拥护者。让我看看能不能帮你:)

拥有一个只检查JWT的API的整个想法就是拥有一个无状态API。“登录”在概念上并不存在。所有JWT都会在某个时间点过期,这就是调用API时检查的内容

因此,我的建议如下:

每次收到API调用时,都会将JWT保存在内存中的某个位置。然后,我们需要登录用户,您只需获取这些列表中的所有JWT,并将未过期的JWT显示为“登录”。此外,您应该有一个cron,它每5分钟遍历一次列表,并清除过期JWTs。它不是真正的“登录”用户,但我认为它已经足够接近了

这样行吗


谢谢

我是Auth0的开发者拥护者。让我看看能不能帮你:)

拥有一个只检查JWT的API的整个想法就是拥有一个无状态API。“登录”在概念上并不存在。所有JWT都会在某个时间点过期,这就是调用API时检查的内容

因此,我的建议如下:

每次收到API调用时,都会将JWT保存在内存中的某个位置。然后,我们需要登录用户,您只需获取这些列表中的所有JWT,并将未过期的JWT显示为“登录”。此外,您应该有一个cron,它每5分钟遍历一次列表,并清除过期JWTs。它不是真正的“登录”用户,但我认为它已经足够接近了

这样行吗


谢谢

通常,您会使用一个身份验证模块来处理该方面,并将相关的详细信息放入共享位置,以便您的逻辑能够访问它们。这是一系列事件——据我所知,它不会保存在任何地方,它只是验证用户是否有权执行操作,仅此而已。(直到Auth0发布了一个令牌并且用户进行了一些API调用,API才被点击)。因此,我想澄清一下——答案是“Auth0可能会提供一些神奇的魔法,可能会,也可能不会?”我不是在挖苦人,我感谢任何帮助,但在我看来,应该有某种方法来对命中的API做出反应,并从中获取令牌。看看Auth0是否支持OAuth,如果支持OAuth,还有很多模块可以连接MVC和OAuth。通常,您使用一个身份验证模块来处理该方面,并将相关细节放置到共享位置,您的逻辑可以访问它们。这是一系列事件——据我所知,它不会保存在任何地方,它只是验证用户是否有权执行操作,仅此而已。(直到Auth0发布了一个令牌并且用户进行了一些API调用,API才被点击)。因此,我想澄清一下——答案是“Auth0可能会提供一些神奇的魔法,可能会,也可能不会?”我不是在挖苦人,我感谢任何帮助,但在我看来,应该有一些方法来对命中的API做出反应,并从中获取令牌。看看Auth0是否支持OAuth,如果支持,还有很多模块可以连接MVC和OAuth。感谢您的回复。我认为类似的东西是一个潜在的解决方案,很高兴看到你证实了这一点。然而,还有一个问题——这个项目有一个奇怪的要求:我们需要能够获得一个具有当前访问的所有用户的列表(让我们考虑这解决了),并强迫他们离开系统(单独),立即生效。据我所知(这是至关重要的),一旦Auth0发出令牌,Auth0就不参与检查。也就是说,客户端拥有令牌(从Auth0获取令牌后)并随请求一起发送……我们的WebAPI/OWIN/无论哪个后端接收到请求,都会检查令牌的有效性(不调用Auth0的服务器),并确定令牌是否有效。如果是这样的话,我不明白将令牌列入黑名单做了什么()。如果我错了,Auth0参与了令牌的检查,那么整个过程就变得容易多了,因为我可以通过API调用将其列入黑名单。再次感谢你的帮助,我明天一整天都会检查这个。嘿,你说得对。JWT是你的。为了注销它们,您必须在数据库中为每个接收到的JWT存储一个ID,以便将它们列入黑名单,然后在让用户使用中间件登录之前,您必须检查JWT是否未被列入该数据库的黑名单。感谢回复。我认为类似的东西是一个潜在的解决方案,很高兴看到你证实了这一点。然而,还有一个问题——这个项目有一个奇怪的要求:我们需要能够获得一个具有当前访问的所有用户的列表(让我们考虑这解决了),并强迫他们离开系统(单独),立即生效。据我所知(这一点很关键),一旦Auth0发出令牌,Auth0就不参与其中