首页新闻找找看学习计划

asp.net core3.0 属性注入问题

0
悬赏园豆:50 [已解决问题] 解决于 2019-11-29 16:44
    public class PermissionAttribute : Attribute, IAuthorizationFilter
    {
        private readonly IPermissionService _Servie;
        private readonly string _moduleIdentityName;
        private readonly string _permissionCode;

        public PermissionAttribute(string moduleIdentityName, string permissionCode)
        {
            _moduleIdentityName = moduleIdentityName;
            _permissionCode = permissionCode;
        }
        public void OnAuthorization(AuthorizationFilterContext filterContext)
        {
        }
    }

//怎么注入 IPermissionService _Servie
[Permission("cms", "view")]
public IActionResult Index()
{
return View();
}

//Startup.cs
services.AddTransient<IPermissionService, PermissionService>();

在 PermissionAttribute 中 怎么注入 IPermissionService _Servie
我想查询权限表 看用户是否有访问CMS 权限

parabeyond008的主页 parabeyond008 | 初学一级 | 园豆:69
提问于:2019-11-29 09:21
< >
分享
最佳答案
0

PermissionAttribute 实现 IFilterFactory 接口,参考 How can I use Dependency Injection in a .Net Core ActionFilterAttribute?

收获园豆:25
dudu | 高人七级 |园豆:39097 | 2019-11-29 10:18

[TypeFilter(typeof(PermissionAttribute),Arguments =new object[] { "cms","view" })]
public IActionResult Index()

filterContext.HttpContext.RequestServices.GetRequiredService<IPermissionService>();

不知道2个哪个好一些

parabeyond008 | 园豆:69 (初学一级) | 2019-11-29 16:43
其他回答(2)
0

直接构造函数中加入IPermissionService 参数就行了啊

收获园豆:5
通信的搞程序 | 园豆:895 (小虾三级) | 2019-11-29 15:41

还有其他参数

支持(0) 反对(0) parabeyond008 | 园豆:69 (初学一级) | 2019-11-29 16:44
0

filterContext.HttpContext.RequestServices.GetRequiredService<IPermissionService>();

收获园豆:20
blackheart | 园豆:2284 (老鸟四级) | 2019-11-29 15:42

谢谢 方法可行

支持(0) 反对(0) parabeyond008 | 园豆:69 (初学一级) | 2019-11-29 16:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册