CSLA.NET的驗證和授權規則簡介

驗證規則
當商業物件中的屬性值在使用SetProperty()方法設定之前,都會呼叫 ValidationRules.CheckRules()方法來觸發所有與該屬性相關聯的驗證規則,若有任何違背驗證規則的情形發生,則會傳回 false,並將違規的項目放入BrokenRulesCollection中,而此商業物件成為無效狀態,其屬性值也就無法存入資料庫中。
直到修改屬性值使其符合所有驗證規則,並將BrokenRulesCollection清空時,商業物件才會恢復為有效狀態,其屬性值才可以存入資料庫中,如此才能確保存入資料庫的資料都是符合商業規則的資料,大幅降低存入錯誤規格資料的風險。

將所有驗証規則放入AddBusinessRules()方法中

驗証規則1  
   


違反驗証規則會顯示警告訊息



授權規則
授權規則分為物件層級和屬性層級授權規則,物件層級故名思義就是對整個商業物件所有屬性的授權,而屬性層級則是對特定單一屬性的授權。
屬 性層級授權規則是放在AddAuthorizationRules()方法中,而物件層級授權規則是放在 AddObjectAuthorizationRules()中,CSLA.NET 3.X版本與CSLA.NET 4.X版本的寫法有些差異,不只可對商業物件的屬性訂授權規則,也可對商業物件的方法訂授權規則。

物件層級授權規則函式
AllowCreate() 指定允許建立商業物件的角色
AllowGet()  指定允許取得已存在的商業物件的角色
AllowEdit()  指定允許編輯和保存商業物件的角色
AllowDelete() 指定允許刪除商業物件的角色
授權規則1  

屬性層級授權規則函式
AllowRead() 指定允許讀取屬性的角色  
DenyRead()  指定不允許讀取屬性的角色   
AllowWrite() 指定允許寫入屬性的角色
DenyWrite() 指定不允許寫入屬性的角色
AllowExecute() 指定允許執行方法的角色
DenyExecute() 指定不允許執行方法的角色
授權規則2  

 

 

創作者介紹
創作者 阿宏的部落格 的頭像
阿宏

阿宏的部落格

阿宏 發表在 痞客邦 留言(0) 人氣( 59 )