В данный момент я использую список претензий в своем пользовательском интерфейсе, для выполнения этой задачи используется код ниже.Получение списка заявок текущего вошедшего в систему пользователя и списка прохождения в поле зрения и манипулирование списком для отображения / скрытия элементов управления в пользовательском интерфейсе.
List<string> lstClaimVM = new List<string>();
var lstClaims = this.User.Claims;
if (lstClaims != null)
{
ClaimVM objClaimVM = new ClaimVM();
foreach (var claim in lstClaims)
{
lstClaimVM.Add(claim.Value);
}
objAssetGridDataVM.lstClaimVM = lstClaimVM;
}
else
{
objAssetGridDataVM.lstClaimVM = lstClaimVM = new List<string>();
}
И приведенный ниже код используется для отображения / скрытия элементов управления пользовательского интерфейса на экране.У меня также есть политики и использование на контроллере и действиях, которые работают нормально для меня, но когда дело доходит до пользовательского интерфейса, нужно что-то, что можно использовать для игры с элементами управления пользовательского интерфейса.Если у пользователя есть претензия «просмотр», то не может выполнить какую-либо операцию, просто просмотрите элемент.
if (claimList !== null) {
var viewClaim = false;
for (var i = 0; i <= claimList.length; i++) {
if (claimList[i] === 'Assets View') {
viewClaim = true;
break;
}
}
Здесь я проверяю конкретный тип заявки, если у пользователя есть разрешение только на просмотр, чем скрытие кнопок и предоставление всего экрана только для чтения.
if (viewClaim) {
for (var j = 0; j <= claimList.length; j++) {
if (claimList[j] === 'Assets Edit') {
viewClaim = false;
break;
}
}
}
if (viewClaim) {
$('#btnAddNewAsset').hide();
// $('#EditAssets').text('View');
}
else {
$('#btnAddNewAsset').show();
}
Не знаю, выдержал ли он этоЭто хороший подход или нет, если у кого-то есть идеи, пожалуйста, затените его.