【发布时间】:2020-09-09 13:54:13
【问题描述】:
Blazor 服务器端,.NET Core 3.1.x 查看有关授权的示例,我正在尝试获取自定义授权过滤器/属性的解决方案。我只需要在授权期间检查用户身份。
https://docs.microsoft.com/en-us/aspnet/core/security/blazor/?view=aspnetcore-3.1
在 Blazor 页面的顶部,@page 之后
@attribute [MyAuthFilter]
过滤器。然而, OnAuthorization 永远不会受到打击。
public class MyAuthFilter: AuthorizeAttribute,IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
var httpContext = context.HttpContext;
// get user name
string userName = httpContext.User.Identity.Name;
// todo - call method to check user access
// check against list to see if access permitted
//context.Result = new UnauthorizedResult();
}
}
【问题讨论】:
-
您是否考虑过使用基于策略的授权,例如:`[Authorize(Policy = "a-policy")] : docs.microsoft.com/en-us/aspnet/core/security/authorization/…
-
是的,这可能是我需要去的地方。只需根据现有 Db 检查用户身份,如果未找到,则重定向到页面
-
那么你就有答案了