2011-02-15 60 views
1

看來,如果我想在實體上使用Rhino安全性,該實體需要具有Guid類型的SecurityKey字段。我看到那裏的實體類的構造函數有一個分配SecurityKey犀牛安全和POCO類

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 
{ .... } 

構造assgined新的GUID SecurityKey everytimes聲明的例子。我不明白爲什麼這會起作用。它是否應該只針對未被持續的新實體制定新的Guid?

回答

1

沒錯。你必須這樣做,否則Guid保存將是{00000000-0000-0000-0000-000000000000},但你需要一個適當的,非空的guid。當你調用 此字段將用於:

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

這只是用來讓你不保存空SecurityKey的Guid,因爲你可能會在未來的使用(你不需要,如果你不分配權限噸需要他們)。 Rhino-Security會照顧圖表的負載並使用保存的那個填充SecurityKey