asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-core – 在ASP.NET vNext过滤器中获取注入对象大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建自定义authorize属性,但在使用默认依赖注入框架的asp.net vnext中,我不知道如何获取注入的对象.我需要在默认的ctor中获取注入的对象.
public  class CustomAttribute
{

   private IDb _db;

   public CustomAttribute()
   {
       _db = null; // get injected object
   }

   public CustomAttribute(IDb db)
   {
       _db = db;
   }

   // apply all authentication logic
}

解决方法

您可以将 ServiceFilterAttribute用于此目的.服务过滤器属性允许DI系统负责实例化和维护过滤器CustomAuthorizeFilter及其任何所需服务的生命周期.

例:

// register with DI
services.AddScoped<ApplicationDbContext>();
services.AddTransient<CustomAuthorizeFilter>();

//------------------

public class CustomAuthorizeFilter : IAsyncAuthorizationFilter
{
    private readonly ApplicationDbContext _db;

    public CustomAuthorizeFilter(ApplicationDbContext db)
    {
        _db = db;
    }

    public Task OnAuthorizationAsync(AuthorizationContext context)
    {
        //do something here    
    }
}

//------------------

[serviceFilter(typeof(CustomAuthorizeFilter))]
public class AdminController : Controller
{
    // do something here
}

大佬总结

以上是大佬教程为你收集整理的asp.net-core – 在ASP.NET vNext过滤器中获取注入对象全部内容,希望文章能够帮你解决asp.net-core – 在ASP.NET vNext过滤器中获取注入对象所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。