Как сгруппировать заявки, которые будут использоваться для AspNetUserClaims? - PullRequest
0 голосов
/ 12 декабря 2018

Я читаю эту книгу, и в ней говорится об использовании утверждений, а роли для более наследственного.Кажется, о чем не говорится, как хранить эти утверждения.

Скажем, у меня есть эти утверждения.

canRead
canWrite
CanUpdate
CanDelete

Теперь у меня есть 2 типа администраторов "ролей" (должен иметьвсе эти утверждения) и пользователь (должен иметь только canRead).

Должен ли я создать новую таблицу (или перехватить таблицы ролей ... что из книги выглядит так, как будто вы используете AspNetUserClaims, вы не будете использовать рольтаблицы) в моей базе данных, которая хранит эти претензии?Или в моем слое обслуживания?

Например, создается новый пользователь, и в моем интерфейсе я хочу дать пользователю возможность выбрать этого человека и "администратора" или "пользователя".Должен ли я иметь что-то вроде этого

public Claim {
   public string ClaimType { get; set; }
   public string ClaimValue { get; set; }  
}

//somewhere in a service file.
List<Claim> allClaims = new List<Claim>(){
    new Claim() {
        ClaimType: "Permission",
        ClaimValue: "canRead",
    },
     new Claim() {
        ClaimType: "Permission",
        ClaimValue: "canWrite",
    },
     new Claim() {
        ClaimType: "Permission",
        ClaimValue: "canUpdate",
    },
     new Claim() {
        ClaimType: "Permission",
        ClaimValue: "canDelete",
    }
}

var groupedClaims = Dictionary<string,List<Claim>>()
groupedClaims.add("admin", allClaims);
groupedClaims.add("user", [only some of the claims]);

// then when need to create new user grab right group claims and insert into AspNetUserClaims

1 Ответ

0 голосов
/ 12 декабря 2018

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

Без ролей (или групп) у вас будет таблица требований пользователя.Когда администратор добавляет нового пользователя в систему, он назначает ему утверждения (или разрешения) непосредственно один за другим.

С ролями (или группами) у вас есть два варианта выбора.

1) Виртуальные роли: в этом случае не требуется никаких дополнительных таблиц данных.Когда администратор добавляет нового пользователя в систему, он назначает ему роль.Затем система добавит пользователю претензии, связанные с каждой ролью.Таким образом, вы используете роли просто как простой способ назначать группы заявок пользователям без необходимости нажимать администратором одну за другой.

2) Реальные роли: в этом случае вам нужны дополнительные данныетаблица для ролей пользователя.Когда администратор добавляет нового пользователя в систему, он назначает ему роль.Когда пользователь входит в систему, система загружает заявки, связанные с каждой ролью пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...