Я тож 2.1.2 с asp.net core 2.0, у меня есть таблица претензий приложения, у которой есть тип претензии и стоимость претензии, т.е. Активы, Редактирование активов, Активы, Представление активов, где типы претензий совпадают с отдельной претензиейзначения, и я создаю политики, используя имя типа претензии, который работает нормально для меня, понятия не имею, как добавить несколько политик в одном действии.Приведенный ниже код используется в файле запуска для создания политик.
services.AddAuthorization(options =>
{
var dbContext = SqlServerDbContextOptionsExtensions.UseSqlServer(new DbContextOptionsBuilder<MyDBContext>(),
Configuration.GetConnectionString("TestIdentityClaimAuth")).Options;
var dbCon = new MyDBContext(dbContext);
//Getting the list of application claims.
var applicationClaims = dbCon.ApplicationClaims.ToList();
var strClaimValues = string.Empty;
List<ClaimVM> lstClaimTypeVM = new List<ClaimVM>();
IEnumerable<string> lstClaimValueVM = null;// new IEnumerable<string>();
lstClaimTypeVM = (from dbAppClaim
in dbCon.ApplicationClaims
select new ClaimVM
{
ClaimType = dbAppClaim.ClaimType
}).Distinct().ToList();
foreach (ClaimVM objClaimType in lstClaimTypeVM)
{
lstClaimValueVM = (from dbClaimValues in dbCon.ApplicationClaims
where dbClaimValues.ClaimType == objClaimType.ClaimType
select dbClaimValues.ClaimValue).ToList();
options.AddPolicy(objClaimType.ClaimType, policy=> policy.RequireClaim(objClaimType.ClaimType, lstClaimValueVM));
lstClaimValueVM = null;
}
});
И в моем контроллере используется атрибут Autherize, подобный этому.
[Authorize(Policy = "Assets Edit")]
Пожалуйста, затените его заранее, спасибо.