- 为全部 5 个项目(Avalonia-API、Avalonia-Common、Avalonia-EFCore、 Avalonia-PC、Avalonia-Services)中缺失注释的类、方法、属性、字段、 接口成员等补全中文 XML 文档注释 - 共修改约 37 个文件,补全约 220+ 处注释 - 修复 ServiceEndpointCollection.cs 中 MapDelete<TService> 语法错误 - 修复 PcAuthService.cs 中 const prefix 位置错乱导致编译失败的问题 - 扫描结果:缺失项 0 - 构建结果:4/4 项目编译通过
40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
using System.Security.Claims;
|
||
|
||
namespace Avalonia_Services.Core
|
||
{
|
||
/// <summary>
|
||
/// 鉴权服务抽象 —— 各宿主按自己的方式实现(JWT / Cookie / Token 等)。
|
||
/// </summary>
|
||
public interface IAuthService
|
||
{
|
||
/// <summary>
|
||
/// 验证请求并返回用户主体;返回 null 表示未授权。
|
||
/// </summary>
|
||
Task<ClaimsPrincipal?> AuthenticateAsync(ServiceEndpointContext context);
|
||
|
||
/// <summary>
|
||
/// 检查当前用户是否有指定权限。
|
||
/// </summary>
|
||
Task<bool> AuthorizeAsync(ClaimsPrincipal user, string policy);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 无需鉴权的默认实现(开发/公开 API 场景)。
|
||
/// </summary>
|
||
public sealed class AnonymousAuthService : IAuthService
|
||
{
|
||
/// <inheritdoc />
|
||
public Task<ClaimsPrincipal?> AuthenticateAsync(ServiceEndpointContext context)
|
||
{
|
||
// 匿名用户,始终通过
|
||
var identity = new ClaimsIdentity("anonymous");
|
||
return Task.FromResult<ClaimsPrincipal?>(new ClaimsPrincipal(identity));
|
||
}
|
||
/// <inheritdoc />
|
||
public Task<bool> AuthorizeAsync(ClaimsPrincipal user, string policy)
|
||
{
|
||
return Task.FromResult(true);
|
||
}
|
||
}
|
||
}
|