You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断其他用户是否已登录?ASP.NET Identity是否支持该功能?

ASP.NET Identity 用户在线状态查询相关解答

核心结论

ASP.NET Identity 本身不提供开箱即用的全局用户在线状态查询能力,该功能需要你自行扩展实现。

原因说明

  • Identity 的原生定位是身份认证、权限管理、基础用户信息存储,仅会解析当前请求上下文的单用户登录身份,不会全局追踪所有用户的在线/离线状态,因此AspNetUsers表默认没有相关标识字段。
  • 你之前搜索到的「获取当前登录用户状态」的能力,本质是Identity基于请求携带的Cookie/Token解析出的单用户身份标识,和你需要的多用户全局在线状态查询不属于同一功能范畴。

适配线上会议场景的实现方案

你的场景涉及实时聊天、视频流传输,属于强实时性场景,推荐搭配SignalR实现状态同步,实现逻辑如下:

  1. 扩展AspNetUsers表,新增IsOnline(布尔类型)、LastActiveTime(日期时间类型)两个字段
  2. 接入SignalR后,在OnConnectedAsync连接事件中,将触发连接的用户的IsOnline字段设为true,同步更新LastActiveTime
  3. 在OnDisconnectedAsync断开连接事件中,将触发断开的用户的IsOnline字段设为false,记录离线时间
  4. 可额外增加定时任务校验用户的LastActiveTime,超过设定的活跃阈值自动标记为离线,覆盖用户直接关闭页面未触发断开事件的异常场景
  5. 用户进入会议/聊天界面时,直接拉取所有参会用户的IsOnline字段即可展示在线状态,状态变更时也可以通过SignalR主动推送给所有关联用户,无需前端轮询

若你的应用为分布式多实例部署,建议使用Redis等共享存储维护在线状态,避免多实例间状态不同步的问题

内容的提问来源于stack exchange,提问作者Stian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:18:02