Rhino Security和POCO课程

时间:2011-02-15 06:57:10

标签: nhibernate rhino-security

似乎我想在实体上使用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?

1 个答案:

答案 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}}。