25 lines
655 B
C#
25 lines
655 B
C#
// 用于获取当前用户信息
|
|
|
|
using System.Security.Claims;
|
|
|
|
public interface ICurrentUserService
|
|
{
|
|
Guid UserId { get; }
|
|
bool IsAdmin { get; }
|
|
}
|
|
|
|
public class CurrentUserService : ICurrentUserService
|
|
{
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
|
|
|
public CurrentUserService(IHttpContextAccessor httpContextAccessor)
|
|
{
|
|
_httpContextAccessor = httpContextAccessor;
|
|
}
|
|
|
|
public Guid UserId =>
|
|
Guid.Parse(_httpContextAccessor.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value);
|
|
|
|
public bool IsAdmin =>
|
|
_httpContextAccessor.HttpContext?.User?.IsInRole("Admin") ?? false;
|
|
} |