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
с сохраненным.