2012-04-12 65 views
1

我需要實現權限。必須能夠根據用戶的權限制定控件和表單(in)。什麼是識別控件以設置權限的好方法?

所以,我需要一種方法來識別控件來設置權限。該應用程序是一個巨大的,仍然在增長。所以,我應用權限的方式必須靈活。

我想過給控件一個全名,比如:namespace.formName.nameOfControl。但我不喜歡這個,因爲它很脆弱。當名稱(空間)發生變化時,我需要改變身份,我不希望這樣,機會同事和我忘記更新這個是很大的。

所以我的問題是,你認爲什麼是識別控件的好方法?有一個回辦公室管理員權限設置

回答

0

我電子書籍,所有aviable控制必須實現像「IAccessControled」有作爲這個名字屬於你可以定義一個「PermissionKey」

定義的接口接口是影響無關的其他屬性的控件具有(如顯式接口實現)

那麼你就可以通過掃描所有IAccessControled CONTROLES

+0

之類的想法,但是這意味着我需要包裝每一個控制I類想要設置權限。所以如果我需要設置一個按鈕控件的權限,我需要包裝Button類。 – Martijn 2012-04-12 09:17:24

+0

你需要你自己的類從派生的buttm,正確的。但那對我來說似乎沒問題。因爲如何定義允許獲取權限的內容?他們應該如何評估?所以有一個許可或不在一些businesslogic結束,這可能取決於控制。在最簡單的情況下,你只需要實現返回字符串的屬性的getter。 – 2012-04-12 09:18:46

+0

這是我的問題:)我發現很難確定如何識別控件。 – Martijn 2012-04-12 09:20:14

0

博阿斯Enkler的答案是設置權限,像命令或用戶的東西創造了一個良好途徑類。但正如你所提到的那樣,它需要包裝每個基本控件來管理其權限。

我建議的方法是創建一個實現IExtenderProvider的自定義控件。 IExtenderProvider只是讓您將自定義Propreties添加到窗體上的控件。所以你可以添加一個「PermissionRequired」屬性,你可以在設計你的WinForm時設置它。

我一直沒能找到一些教程,真正讓我高興,但這些都是最好的一個,我還沒有找到:.NET IExtenderProvider (C#)

相關問題