Rhino Security и POCO класс

Кажется, если я хочу использовать 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 ответ

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

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

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

Другие вопросы по тегам