【发布时间】:2014-10-21 03:43:01
【问题描述】:
我正在尝试为我的 WebApi 项目创建自定义授权属性。
我想在这个属性中注入一个 IAuthModule 对象。我不知道如何实现这一点。我在网上找到了一些解决方案,但其中任何一个都没有成功。
这是我目前所拥有的:
public void Configuration(IAppBuilder app)
{
// WebApi config
HttpConfiguration config = new HttpConfiguration();
// SimpleInjector
var container = new SimpleInjector.Container();
container.Register<IAuthModule, CoreAuthModule>();
container.RegisterWebApiFilterProvider(config);
container.RegisterWebApiControllers(config);
container.Verify();
config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
// Setup Oauth
ConfigureOAuth(app, container.GetInstance<IAuthModule>());
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
和属性:
public class CustomAuthorizationAttribute : AuthorizeAttribute
{
// how can I inject something here?
public IAuthModule AuthModule { get; set; }
protected override bool IsAuthorized(HttpActionContext actionContext)
{
return false;
}
}
【问题讨论】:
标签: dependency-injection asp.net-web-api simple-injector