Jon*_*ear 9 dependency-injection autofac
所以我需要在我正在使用的授权属性中注入许多不同的服务.为简单起见,我将留下这个以显示配置管理器.
public class FeatureAuthorizeAttribute : AuthorizeAttribute
{
public IConfigurationManager ConfigurationManager;
private readonly string _feature;
public FeatureAuthorizeAttribute(string feature)
{
_feature = feature;
var test = ConfigurationManager.GetCdnPath();
}
}
Run Code Online (Sandbox Code Playgroud)
将使用如下
[FeatureAuthorize("Admin")]
Run Code Online (Sandbox Code Playgroud)
我试过使用构造函数注入
public FeatureAuthorizeAttribute(string feature, IConfigurationManager configurationManager)
{
ConfigurationManager = configurationManager;
_feature = feature
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试时,这只会导致错误
[FeatureAuthorize("Admin", IConfigurationManager)]
Run Code Online (Sandbox Code Playgroud)
首先,这似乎是错误的方式.我假设我需要在容器中注册我的自定义授权属性,以使其开始接收
Mar*_*ann 11
而不是尝试使用依赖注入与属性(你不能以任何理智,有用的方式),创建被动属性.
具体来说,在这种情况下,假设这是一个ASP.NET MVC场景,您无法从AuthorizeAttribute派生.相反,您应该让您的授权服务查找您的自定义属性,并实现IAuthorizationFilter.然后将过滤器添加到应用程序的配置中.
更多详细信息可以在这个答案中找到:https://stackoverflow.com/a/7194467/126014.
| 归档时间: |
|
| 查看次数: |
5114 次 |
| 最近记录: |