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

标签 c# asp.net-mvc-5 identity

伙计们知道如何在 MVC 5 中使用 .NET identity 2.0 成员提供程序获取在线用户数吗?

我已经扫描了 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);
}

关于c# - 如何在 MVC 5 中使用 .NET Identity 2.0 获取在线用户数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23122086/

相关文章:

使用对象引用的 C# 垃圾回收

authentication - 应用程序之间的 AspNetCore EF6 身份共享 Cookie 身份验证

sql - 检查 Id 为 Identity 的表中的重复记录

C# System.Object 是最终的基类

c# - 将 ObservableCollection 绑定(bind)到 ListBox 的选定项

c# - MongoDb 驱动程序未插入整个对象

c# - 使用类库中的 View

c# - 将未知数量的输入元素绑定(bind)到 MVC5 中的模型

c# - ASP.NET MVC : Check database connectivity on application startup

identity - OIM 的数据库查询