我是一個有經驗的開發人員,但對Silverlight,棱鏡,MVVM以及所有相關的東西,我也需要關於新的應用我開發安全靈活的方法。 我通過爲WinForms(實際上是Visual WebGui)構建的自定義安全框架實現了此安全模型,但我需要獲取一些關於如何爲Silverlight實現此操作的指導原則,或者是否有已經構建的可供使用的指導。Silverlight 4的和安全框架
所有模塊實現兩個接口,ISecurableModule和ISecuredModule。 ISecurableModule用於註冊具有安全存儲庫的模塊。 ISecuredModule用於實施安全性。
在我的WinForms應用程序,在啓動時(實際上後一個新的安裝,在第一次啓動),模塊啓動,通過反射檢查所有的組件,尋找實現ISecurableModule接口模塊。此界面報告模塊是否在添加模式,編輯模式,查看模式或其中的任何一個模式下啓動(例如報告模塊或數據獲取/過濾器只能在查看模式下打開,因爲數據不能在其中更改,但數據條目只能在添加,添加/編輯或查看中打開) 所有這些數據都保存在安全存儲庫中。
要定義安全權限,我可以創建安全類別 - 也就是說,庫存管理員,工資管理員,工資管理員等。對於每個類別,我分配從安全儲存庫中選擇的模塊,並具有適當的權限(例如,對於庫存操作員,我指定模塊接收庫存操作或具有添加和查看權限的轉儲庫存操作,和庫存監工分配享有充分權利的所有庫存模塊)
然後,我創建庫存操作員角色,並指定他的庫存操作員安全類別。我可以爲每個角色分配多個安全類別(因爲我可以創建具有更高粒度的安全類別 - 例如安全類別來管理自己的帳戶或管理用戶組 - 這將授予主管等)
然後在運行時我有工作場所的概念(如Prism中的shell),我可以在其中動態加載模塊(實際上是動態的,我使用ServiceLocator模式來定位基於它實現的接口的組件,然後爲每個模塊類提供一個控制器 - 模塊實現相同的接口 - 它可以使用枚舉字段來確定哪個模塊實際加載需要處理的數據的時間)。工作場所控制器使用安全提供者,該安全提供者檢查針對當前用戶的訪問權加載的模塊的訪問權限。
在我SL4程序,我想使用MVVM模式,因此我希望有我的看法無代碼,並通過視圖模型,個ICommand和數據綁定帶動整個功能。所以我需要一些建議,我如何才能完成這種功能,我描述成SL4應用程序。我並不特別與Prism綁定,所以我會考慮是否有另一個SL4框架可以幫助我實現這個目標。
感謝您的建議。我意識到這些安全措施,但事實是我也有興趣從用戶認證/用戶角色的角度來實現安全性,而且我的要求與提到的規範相關。 – bzamfir 2011-04-06 08:11:33
你能解釋一下「我只使用授權模塊來減少下載」是什麼意思? Tnx – bzamfir 2011-04-06 08:12:07
Silverlight應用程序在下載大小上可能非常大。通過在下載模塊之前認證和授權用戶,可以開始下載(可能在甚至需要之前)僅允許用戶被允許使用的那些模塊。其他人對用戶無用,因此不能下載。 – 2011-04-06 09:07:36