2017-01-23 74 views
0

我正在開發一個WPF應用程序,它具有一些權限限制,因此只有管理員可以看到並且只允許其中一些功能的屏幕。用戶權限控制

目前我正在通過應用程序檢查每個屏幕的用戶對象流的構造函數方法的權限訪問級別。但我不禁認爲,必須有更聰明和正確的方式來做到這一點。

是否有可能擁有某種PermissionHandler類來執行驗證並設置用戶因其權限級別而可以執行的操作?

非常感謝。

+0

您管理的用戶存儲自己,你不使用任何會員提供商? –

+0

管理我自己。 – Pelicer

+1

我想你想要做的是把安全的東西放在業務邏輯層而不是用戶界面,http://softwareengineering.stackexchange.com/q/197977/38951 –

回答

1

當然這是可能的。你可以使用Singleton模式或靜態類。這樣的(僞代碼)的東西:

public static class PermissionHandler 
{ 
    public static User {get;set;} 
    public static Login(string username, string password) 
    { 
     //set User here 
    } 
} 

比你甚至可以綁定到User.Claims或作出PermissionHandler一個方法來獲得知情同意權。無論如何,如果你只是使用它來顯示/隱藏你的控件,你的應用程序可以通過使用例如Snoop輕鬆入侵。因此,如果您真的需要「保護」某些功能的使用,則應該在業務邏輯或服務器端進行檢查(如果有的話)。

如果你去服務器端,我強烈建議你使用令牌服務。例如https://jwt.io/ADFS。當然還有其他許多人,但是對於這種QA格式,這會花費很長時間......