您知道如何使用.NET Identity 2.0成员提供程序在MVC 5中获取在线用户数量吗?
我已经扫描了Identity示例中提供的UserManager方法,但没有帮助。
您知道如何使用.NET Identity 2.0成员提供程序在MVC 5中获取在线用户数量吗?
我已经扫描了Identity示例中提供的UserManager方法,但没有帮助。
这应该能够准确地显示用户数量。它使用缓存来存储用户的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);
}