在ASP NET CORE 3.0中,我们可以使用UserManager服务来获取当前登录用户的ID。以下是示例代码:
- 在Startup.cs中注册UserManager服务:
// Startup.cs
using Microsoft.AspNetCore.Identity;
//...
public void ConfigureServices(IServiceCollection services)
{
//...
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
//...
}
// Controller
using Microsoft.AspNetCore.Identity;
//...
public class MyController : Controller
{
private readonly UserManager _userManager;
public MyController(UserManager userManager)
{
_userManager = userManager;
}
public async Task Index()
{
// Get current logged in user ID
var user = await _userManager.GetUserAsync(User);
var userId = user?.Id;
//...
}
}
// View
@using Microsoft.AspNetCore.Identity
@inject UserManager UserManager
@{
var user = await UserManager.GetUserAsync(User);
var userId = user?.Id;
}
User ID: @userId