认证 & 授权 - 静态 Authorization 类

优质
小牛编辑
180浏览
2023-12-01

[命名空间: Serenity, 程序集: Serenity.Core]

Authorization 类提供访问一些像 IAuthorizationService、IPermissionService 等服务提供的信息的捷径。

例如,要替换下面的写法

  1. Dependency.Resolve<IAuthorizationService>().HasPermission("SomePermission")

你可以使用

  1. Authorization.HasPermission("SomePermission")
  1. public static class Authorization
  2. {
  3. public static bool IsLoggedIn { get; }
  4. public static IUserDefinition UserDefinition { get; }
  5. public static string UserId { get; }
  6. public static string Username { get; }
  7. public static bool HasPermission(string permission);
  8. public static void ValidateLoggedIn();
  9. public static void ValidatePermission(string permission);
  10. }

IsLoggedInUserDefinitionUserIdUsernameHasPermission 是为了让使用对应服务更容易访问当前用户信息。

ValidateLoggedIn 检查是否有登录用户,如果没有登录用户,则抛出含 NotLoggedIn 错误码的 ValidationException 异常。

ValidatePermission 检查登录用户是否有指定的权限,如果没有相应权限,则抛出含 AccessDenied 错误码的 ValidationException 异常。