Как я на самом деле использую Rhino Security для защиты своих сущностей? - PullRequest
2 голосов
/ 28 августа 2010

Мой вопрос связан с тем, КАК и КОГДА мне следует использовать AuthorizationRepository?

Я полагаю, что в моем приложении должен быть какой-то способ поддерживать свои роли пользователей (группы пользователей в терминах безопасности Rhino) и отношения между пользователями и группами пользователей.Пока все хорошо.

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

Например, предположим, у меня есть система управления персоналом, которая запрещает доступ к «VIP-записям».У меня была бы эта модель:

public enum RecordType
{
   Normal,
   VIP
}

public class Record
{
   public string Name {get;set;}
   public RecordType Type {get;set;}
}

Где мне взять код, следующий код, который связывает конкретную сущность с группой под названием "VIP"?:

_repository.AssociateEntityWith(record, "VIP");

Есть лигде-нибудь, где я мог бы поместить некоторый код, который классифицирует мои сущности?

И еще один вопрос, какой GUID я должен возвращать для каждой сущности, если мой идентификатор представляет собой int?

Спасибо !!

1 Ответ

0 голосов
/ 06 сентября 2010

Это Rhino Security? Если я правильно понимаю, это больше вопрос дизайна. Если это маленькое приложение, я бы поместил код _repository.AssociateEntityWith(record, "VIP"); везде, где это необходимо, например, в метод, который обрабатывает пользователя, нажимающего определенную кнопку.

Если, однако, у вас есть более сложное приложение, вы можете поместить его на бизнес-уровень. Например, у вас может быть класс Security с методом:

public void SetAsVipRecord(Record record)
{
    // maybe there's other stuff to do here, like validation logic, logging, etc.
    _repository.AssociateEntityWith(record, "VIP");
}

Я не очень хорошо знаю Rhino Security, поэтому, если я полностью не понял ваш вопрос, прошу прощения. Я также не могу ответить на ваш вопрос об идентификаторе, но вы также можете попробовать Rhino Tools Google Group .

...