using System.Security.Claims; namespace Avalonia_Services.Core { /// /// 鉴权服务抽象 —— 各宿主按自己的方式实现(JWT / Cookie / Token 等)。 /// public interface IAuthService { /// /// 验证请求并返回用户主体;返回 null 表示未授权。 /// Task AuthenticateAsync(ServiceEndpointContext context); /// /// 检查当前用户是否有指定权限。 /// Task AuthorizeAsync(ClaimsPrincipal user, string policy); } /// /// 无需鉴权的默认实现(开发/公开 API 场景)。 /// public sealed class AnonymousAuthService : IAuthService { /// public Task AuthenticateAsync(ServiceEndpointContext context) { // 匿名用户,始终通过 var identity = new ClaimsIdentity("anonymous"); return Task.FromResult(new ClaimsPrincipal(identity)); } /// public Task AuthorizeAsync(ClaimsPrincipal user, string policy) { return Task.FromResult(true); } } }