首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在.NET中检索已登录/已连接的用户列表?

要在.NET中检索已登录/已连接的用户列表,您可以使用ASP.NET Core的Identity模块。以下是一个简单的示例,说明如何实现此目标:

  1. 首先,确保您已安装并引用了以下包:
代码语言:txt
复制
Microsoft.AspNetCore.Identity
Microsoft.AspNetCore.Identity.EntityFrameworkCore
  1. 在您的项目中创建一个新的ASP.NET Core Web应用程序,并选择"Web应用程序(模型-视图-控制器)"模板。
  2. 在"创建新的ASP.NET Core Web应用程序"窗口中,选择"带身份验证的单页面应用程序"。
  3. 打开"Startup.cs"文件,并在ConfigureServices方法中添加以下代码:
代码语言:csharp
复制
services.AddIdentity<ApplicationUser, IdentityRole>()
    .AddEntityFrameworkStores<ApplicationDbContext>()
    .AddDefaultTokenProviders();
  1. 在"Models"文件夹中创建一个名为"ApplicationUser.cs"的新类,并继承自"IdentityUser":
代码语言:csharp
复制
using Microsoft.AspNetCore.Identity;

namespace YourApp.Models
{
    public class ApplicationUser : IdentityUser
    {
    }
}
  1. 在"Data"文件夹中创建一个名为"ApplicationDbContext.cs"的新类,并继承自"IdentityDbContext":
代码语言:csharp
复制
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using YourApp.Models;

namespace YourApp.Data
{
    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }
    }
}
  1. 在"Controllers"文件夹中创建一个名为"AccountController.cs"的新类,并继承自"Controller":
代码语言:csharp
复制
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using YourApp.Models;

namespace YourApp.Controllers
{
    public class AccountController : Controller
    {
        private readonly UserManager<ApplicationUser> _userManager;

        public AccountController(UserManager<ApplicationUser> userManager)
        {
            _userManager = userManager;
        }

        public async Task<IActionResult> LoggedInUsers()
        {
            var users = await _userManager.GetUsersInRoleAsync("LoggedIn");
            return View(users);
        }
    }
}
  1. 在"Views"文件夹中创建一个名为"Account"的新文件夹,并在其中创建一个名为"LoggedInUsers.cshtml"的新视图:
代码语言:html
复制
@model IEnumerable<YourApp.Models.ApplicationUser>

<h2>Logged In Users</h2><table class="table">
   <thead>
        <tr>
            <th>Username</th>
            <th>Email</th>
        </tr>
    </thead>
   <tbody>
        @foreach (var user in Model)
        {
            <tr>
                <td>@user.UserName</td>
                <td>@user.Email</td>
            </tr>
        }
    </tbody>
</table>
  1. 最后,在"Configure"方法中的"app.UseEndpoints"中添加以下代码:
代码语言:csharp
复制
endpoints.MapControllerRoute(
    name: "logged-in-users",
    pattern: "logged-in-users",
    defaults: new { controller = "Account", action = "LoggedInUsers" });

现在,您可以运行应用程序并访问"/logged-in-users"路径,以查看已登录/已连接的用户列表。

请注意,这个示例仅用于演示目的,您可能需要根据您的实际需求进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券