AGSSbackend/AGSS/Services/CurrentUserService.cs

25 lines
656 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("luolan") ?? false;
}