Как использовать авторизацию на основе утверждений для скрытия / отображения элементов управления пользовательского интерфейса с использованием идентификатора 2.1 в ядре asp.net - PullRequest
0 голосов
/ 05 октября 2018

В данный момент я использую список претензий в своем пользовательском интерфейсе, для выполнения этой задачи используется код ниже.Получение списка заявок текущего вошедшего в систему пользователя и списка прохождения в поле зрения и манипулирование списком для отображения / скрытия элементов управления в пользовательском интерфейсе.

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();
}

Не знаю, выдержал ли он этоЭто хороший подход или нет, если у кого-то есть идеи, пожалуйста, затените его.

...