Rhino Security и POCO класс - PullRequest
       19

Rhino Security и POCO класс

1 голос
/ 15 февраля 2011

кажется, что если я хочу использовать Rhino Security на объекте, у этого объекта должно быть поле SecurityKey типа Guid.Я видел пример, когда у конструктора класса сущности есть оператор, который присваивает SecurityKey

public class Document
{
  public Document() { SecurityKey = Guid.NewGuid(); } 
  public virtual int Id {get; set;}
  public virtual string Name { get; set;}
  public virtual Guid SecurityKey { get; set;}
}
public class DocumentInformationExtractor : IEntityInformationExtractor
{ .... }

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

1 Ответ

1 голос
/ 16 февраля 2011

Это верно.Вы должны сделать это, иначе сохраненное значение Guid будет равно {00000000-0000-0000-0000-000000000000}, но вам нужен правильный непустой гид.Это поле будет использоваться при вызове:

permissionsBuilderService
    .Allow("/Document/Edit")
    .For(user1)
    .On(MyDocument)
    .Level(20)
    .Save();

Это просто используется, поэтому вы не сохраняете пустой SecurityKey Guid, поскольку вы можете использовать его в будущем (вам не нужно назначать разрешения, еслиони вам не нужны).Rhino-Security будет следить за загрузкой графика и заполнять SecurityKey сохраненным.

...