csla對類的屬性讀寫控制做的很到位。
首先在businessbase繼承的類中繼承addauthorizationrules函式:
protected override void addauthorizationrules()
public string password
set}
至此,在ui介面上,僅需加上元件:readwriteauthorization,那麼相關的資料感知控制項,比如輸入框等,即可按照在addauthorizationrules函式中定義的讀寫許可權進行唯讀和使能控制:
實現iextenderprovider介面:
public bool canextend(object extendee)
但是,csla對類的許可權控制不是很到位,需要框架對此進行二次開發。
類的許可權控制分為兩個層次:
1,瀏覽許可權;
2,增刪改許可權;
瀏覽許可權是優先判斷的,其次才對增刪改進行判斷。
根據目前csla提供的功能,在businesslistbase中實現:
#region 許可權控制
///
/// 是否可以瀏覽資料
///
[browsable(false)]
public static bool allowbrowse
}///
/// 是否可以新增資料
///
[browsable(false)]
public new bool allownew
}///
/// 是否可以刪除資料
///
[browsable(false)]
public new bool allowremove
}///
/// 是否可以編輯資料
///
[browsable(false)]
public new bool allowedit
}#endregion
至此,只要在繼承businesslistbase的類中,實現addobjectauthorizationrules靜態函式,比如:
protected static void addobjectauthorizationrules()
就可以實現類的許可權資料的獲取,不過函式名不能寫錯,否則csla就找不到了:
internal class objectauthorizationrules}}
return result;}}
但是,類的許可權資料的處理和應用,現在只能靠開發者在業務系統中硬編碼:
///
/// 管理使用者窗體
///
public partial class userseditform : form
{///
/// 應用授權規則
///
至於如何在框架中封裝掉,目前還在思考當中。。。
如何在應用系統中實現資料許可權的控制功能
在很多應用行業裡面,都對資料的許可權做了特別的宣告,如對於銷售,財務的資料,它們是非常敏感的,因此要求對資料許可權進行控制,對於基於集團性的應用系統而言,就更多需要控制好各自公司的資料了。如預設只能看本公司 或者本部門的資料,對於特殊的領導,可能需要跨部門的資料,因此不能硬編碼那個領導該訪問哪些資料...
如何在應用系統中實現資料許可權的控制功能
在很多應用行業裡面,都對資料的許可權做了特別的宣告,如對於銷售,財務的資料,它們是非常敏感的,因此要求對資料許可權進行控制,對於基於集團性的應用系統而言,就更多需要控制好各自公司的資料了。如預設只能看本公司 或者本部門的資料,對於特殊的領導,可能需要跨部門的資料,因此不能硬編碼那個領導該訪問哪些資料...
如何在控制單據Order的增刪改查的許可權
對於order來說,如果有定製化的許可權控制需求,可以通過實施badi crm order auth check 來進行額外的許可權控制。在crm order中,許可權檢查是遵循如下序列sequence來執行的 需要說明的是,針對標準check,執行檢查序列的時候,如果有任何一步check pass...