CSLA的許可權控制如何整合到框架中

2021-04-20 00:57:20 字數 1450 閱讀 6739

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