역할을 기반으로 내 컨텍스트를 동적으로 권한 부여하는 방법을 파악하려고합니다.Db 일반 리소스 권한
public interface IConstraintResolver
{
Expression<Func<TEntity, bool>>[] GetConstraintsForTypeByRole<TEntity>()
where TEntity : class;
}
public class AuthorizationContext : DbContext
{
protected IConstraintResolver _constraintResolver;
public AuthorizationContext(IConstraintResolver constraintResolver)
{
this._constraintResolver = constraintResolver;
}
public override DbSet<TEntity> Set<TEntity>()
{
var defaultSet = base.Set<TEntity>();
var constraints = this._constraintResolver.GetConstraintsForTypeByRole<TEntity>();
var filteredSet = base.Set<TEntity>().AsQueryable();
foreach(var constraint in constraints)
{
filteredSet = filteredSet.Where(constraint);
}
//how do I apply this back to the innerQueryable
return filteredSet;
}
}
내 문제는 내 쿼리 가능 항목을 적용한 후에 어떻게이 항목을 기본 쿼리 가능하게 만들 수 있습니까?
나는 이전 DbSet here작동하는 gyst을 발견하지만 닷넷 코어
가 어떻게 정의 dbset를 만들 수 있습니다, 또는 어떻게 기존 dbSet를 필터링 할 수 있습니다 IDBSet를 포함하지 않는 이유는 무엇입니까? global filters을 통해 더 나은 방법이있다
@SlavaUtesinov가 여전히 절약과 협력이 –