Elsa Core
Elsa Core 之 Server权限控制
组件未自带权限控制,官方建议使用asp.net core自带的权限控制实现
我这边尝试了下,如下代码应该可行
定义Filter
public class ElsaApiAuthorizeFilter : IActionFilter
{
public void OnActionExecuted(ActionExecutedContext context)
{
//throw new NotImplementedException();
}
public void OnActionExecuting(ActionExecutingContext context)
{
if (context.ActionDescriptor.DisplayName.StartsWith("Elsa.Server.Api"))
{
//这里是您的验证逻辑,例如验证是否登录
if (context.HttpContext.User.Identity.IsAuthenticated)
{
context.Result = new Microsoft.AspNetCore.Mvc.JsonResult(new { message = "未登录" })
{
StatusCode = 401
};
return;
}
}
}
}
全局注册
services
.AddElsaSwagger()
.AddElsaApiEndpoints()
.AddControllers(opt =>
{
opt.Filters.Add(typeof(ElsaApiAuthorizeFilter));
});
关键字: elsa、权限控制、访问控制、访问权限