如何在MVC 5中使用.NET Identity 2.0获取在线用户数量

本文关键字:Identity 获取 在线 用户数 NET MVC | 更新日期: 2023-09-27 17:58:38

大家知道如何在MVC 5中使用.NET identity 2.0成员资格提供程序来获得在线用户数量吗?

我已经扫描了Identity示例提供的UserManager中的方法,但没有任何帮助。

如何在MVC 5中使用.NET Identity 2.0获取在线用户数量

这在显示用户计数时应该有些准确。它使用缓存来存储用户的IP地址,并返回单个IP的计数。如果两个人在同一个代理背后,它将被视为一个人。

using System.Runtime.Caching;
public int UsersOnlineCount
{
    get
    {
        return MemoryCache.Default.Where(kv => kv.Value.ToString() == "User").Count();
    }
}

确保每个人都被添加到缓存的最好方法是在构造函数中定义一些BaseController。。。

public BaseController() : base() 
{
    CacheItemPolicy policy = new CacheItemPolicy();
    policy.AbsoluteExpiration = DateTime.UtcNow.AddMinutes(20);
    MemoryCache.Default.Add(System.Web.HttpContext.Current.Request.UserHostAddress, "User", policy);
}