2010-08-27 4 views
2

Мой вопрос связан с КАК и КОГДА я должен использовать AuthorizationRepository?Как я могу использовать Rhino Security для защиты своих объектов?

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

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

Например, предположим, что у меня есть система HR, которая запрещает доступ к «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 следует возвращать для каждой сущности, если мой ID является int?

Спасибо!

ответ

0

Является ли это 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 безопасности, так что если я полностью понял ваш вопрос, я извиняюсь. Я также не могу ответить на ваш вопрос об ID, но вы также можете попробовать Rhino Tools Google Group.

+0

Thx peter, я понимаю ваш ответ, с точки зрения дизайна Я понимаю, что я должен поместить его в бизнес-уровень, но я изучал Rhino Security, и в основном я не понимаю некоторых случаев использования. Я попробую в Google Group! – sabanito

Смежные вопросы