【发布时间】:2020-02-21 09:18:24
【问题描述】:
我目前正在学习 Blazor 客户端 (WebAssembly),在查看授权时,我试图验证用户是否可以访问 URI 中的路径。
给定一个 URI,例如 http://localhost:1234/{route}/resource
在页面上,我可以将路由映射到属性,但是如何在 AuthorizationHandler 中访问此值以验证 JWT 是否具有此值的声明?
我尝试注入 RouteData,并尝试通过 IHttpContextAccessor 访问 HttpContext,但结果为空。
这是我正在努力学习的课程
public class RouteDataAccessor : IRouteDataAccessor
{
private readonly RouteData _routeData;
public RouteDataAccessor(IHttpContextAccessor httpContextAccessor)
{
httpContextAccessor.NullCheck(nameof(httpContextAccessor));
httpContextAccessor.HttpContext.NullCheck(nameof(httpContextAccessor.HttpContext));
_routeData = httpContextAccessor.HttpContext.GetRouteData();
}
public bool TryGetData(string key, out string value)
{
value = null;
if (_routeData == null || !_routeData.Values.TryGetValue(key, out value))
{
return false;
}
return true;
}
}
【问题讨论】:
标签: c# dependency-injection blazor blazor-client-side asp.net-blazor