网站搭建实录-4


网站搭建实录-4

认证角色数据查询逻辑

  public async Task<User> GetUserAuthenticateAsync()
   {
      HttpContext httpContext = _httpContextAccessor.HttpContext;
      if (httpContext == null)
      {
            throw new InvalidOperationException("HttpContext is not available.");
      }
      var authenticateResult = await httpContext.AuthenticateAsync(CookieAuthenticationDefaults.AuthenticationScheme);
      if (authenticateResult.Succeeded)
      {
            var claimsPrincipal = authenticateResult.Principal;
            // 现在您可以使用claimsPrincipal来获取用户的声明信息
            var username = claimsPrincipal.FindFirst(ClaimTypes.Name)?.Value;
            return await ValidateUserAsync(username);
      }
      else
      {
            // 处理认证失败的情况
            throw new InvalidOperationException("用户不存在");
      }
   }
  1. AuthenticateAsync为HttpContext的扩展方法
  2. 在使用中直接使用HttpContext.AuthenticateAsync(CookieAuthenticationDefaults.AuthenticationScheme)会显示接口不存在
  3. 使用 HttpContext httpContext = _httpContextAccessor.HttpContext;可获取HttpContext实体
  4. 此接口为分类展示Cos目录提供角色信息


已发布

分类

来自

标签: