BlazorWebAssemblyEFCore行级安全性-将客户端的声明传递到服务器
创始人
2024-12-22 00:00:01
0
  1. 定义客户端声明 在客户端的认证过程中,可以为用户添加一些声明,来表达该用户暂时的权限。我们可以通过这些声明,来识别哪些用户可以操作哪些数据。声明可以包含例如角色名、组名以及自定义的任何数据。声明类似于键/值对,包含了名为Type和Value的两个属性。

public record ClaimDTO(string Type, string Value);

  1. 传递声明给HTTP请求 我们需要使用一个httpClient库来发送带有声明信息的HTTP请求。 假设我们的httpClient的名称为_httpClient。我们可以通过以下代码将声明添加到该httpClient:

public async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var user = _httpContextAccessor.HttpContext.User;

request.Headers.Authorization = new AuthenticationHeaderValue("Bearer");
request.Headers.Authorization.Parameter = await _httpTokenProvider.GetTokenAsync();

var allClaims = user.Claims.Union(user.FindAll("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"));

var claimsToSend = allClaims
    .Select(c =>
        new ClaimDTO(c.Type, c.Value))
    .ToList();

// Add the claims to the request
request.Content = JsonContent.Create(
    new { ClaimsToSend = claimsToSend }, new JsonSerializerOptions
    {
        PropertyNamingPolicy = JsonNamingPolicy.CamelCase
    });

return await _httpClient.SendAsync(request, cancellationToken);

}

  1. 在服务器端接收请求 首先,我们需要定义一个中间件,来解析HTTP请求。我们可以使用以下代码在服务器端接收请求:

public class RowLevelSecurityClaimsMiddleware { private readonly RequestDelegate _next;

public RowLevelSecurityClaimsMiddleware(RequestDelegate next)
{
    _next = next;
}

public async Task InvokeAsync(HttpContext context,
    [FromServices] IBrowserServiceProvider browserServiceProvider)
{
    var claims = new List();

    if (context.Request.Method == HttpMethod.Post.ToString() &&
        context.Request

相关内容

热门资讯

透视模拟器!wepoker辅助... 透视模拟器!wepoker辅助器安装包,aapoker破解侠是真的吗,安装教程(有挂规律)-哔哩哔哩...
透视app!poker红龙辅助... 透视app!poker红龙辅助,hhpoker德州透视,第三方教程(存在有挂)-哔哩哔哩hhpoke...
透视总结!werplan免费挂... 透视总结!werplan免费挂下载,wepoker的辅助器,透视教程(竟然有挂)-哔哩哔哩运werp...
透视存在!wejoker内置辅... 透视存在!wejoker内置辅助,hhpoker有作弊的吗,2025新版教程(有挂辅助)-哔哩哔哩1...
透视美元局!aapoker插件... 透视美元局!aapoker插件下载,佛手大菠萝辅助,高科技教程(存在有挂)-哔哩哔哩1、下载好佛手大...
透视智能ai!wepokerp... 透视智能ai!wepokerplus透视脚本免费,wepoker轻量版透视系统,新2025版(详细教...
透视玄学!wepoker辅助器... 透视玄学!wepoker辅助器最新版本更新内容,拱趴大菠萝十三水作弊,专业教程(竟然有挂)-哔哩哔哩...
透视透视!wpk私人局辅助是真... 透视透视!wpk私人局辅助是真的吗,德普之星私人局辅助免费,曝光教程(有挂方针)-哔哩哔哩1、不需要...
透视中牌率!wepoker怎么... 透视中牌率!wepoker怎么下载游戏,aapoker怎么控制牌,2025新版技巧(有挂实锤)-哔哩...
透视模拟器!wepoker亲友... 透视模拟器!wepoker亲友圈有用吗,wpk可以作弊吗,靠谱教程(有挂助手)-哔哩哔哩1、任何we...