0
我不確定該怎麼處理我的問題。我想創建一個用於檢查角色和權限的自定義授權屬性。我們的權限不是您的標準這個角色擁有這些權限,但更多的每個角色可以擁有一些權限但不是其他權限。傳遞參數和自定義屬性
我已經覆蓋在AuthorizeAttribute類的AuthorizeCore方法:
internal class RoleAttribute : AuthorizeAttribute
{
private readonly IUserRepository _userRepository;
private readonly IPermissionRepository _permissionRepository;
public RoleAttribute(IUserRepository userRepository, IPermissionRepository permissionRepository)
{
_userRepository = userRepository;
_permissionRepository = permissionRepository;
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
User user = _userRepository.GetUsers();
Permission permission = _permissionRepository.GetPermissions();
return user.Permissions.Where(x => x.Id == permission.Id).Any();
}
}
所以,當我實現屬性:
我不能依賴注入到被覆蓋的方法,因爲我不能再通注入到屬性中。
我意識到這不是解決問題的好方法,但直到我們能夠與客戶合作,讓我們走向更好的實踐,我需要相應地開發。
我的主要問題是:是否有更好的方式來創建一個自定義的授權過濾器,允許這種類型的行爲?