似乎我想在实体上使用Rhino Security,该实体需要具有Guid类型的SecurityKey字段。我看到了一个示例,其中实体类的构造函数具有分配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?
答案 0 :(得分:1)
没错。你必须这样做,否则保存的Guid
将是{00000000-0000-0000-0000-000000000000}
,但你需要一个正确的,非空的guid。
当您致电:
permissionsBuilderService
.Allow("/Document/Edit")
.For(user1)
.On(MyDocument)
.Level(20)
.Save();
这只是用过,所以你不保存一个空的SecurityKey
Guid,因为你将来可能会使用它(如果你不需要它们,你不需要分配权限)。 Rhino-Security将负责图表的加载并使用保存的SecurityKey
填充{{1}}。