我正在開發一個WPF應用程序,它具有一些權限限制,因此只有管理員可以看到並且只允許其中一些功能的屏幕。用戶權限控制
目前我正在通過應用程序檢查每個屏幕的用戶對象流的構造函數方法的權限訪問級別。但我不禁認爲,必須有更聰明和正確的方式來做到這一點。
是否有可能擁有某種PermissionHandler類來執行驗證並設置用戶因其權限級別而可以執行的操作?
非常感謝。
我正在開發一個WPF應用程序,它具有一些權限限制,因此只有管理員可以看到並且只允許其中一些功能的屏幕。用戶權限控制
目前我正在通過應用程序檢查每個屏幕的用戶對象流的構造函數方法的權限訪問級別。但我不禁認爲,必須有更聰明和正確的方式來做到這一點。
是否有可能擁有某種PermissionHandler類來執行驗證並設置用戶因其權限級別而可以執行的操作?
非常感謝。
我認爲你想要做的是將安全性的東西放在業務邏輯層而不是UI中。
我不知道你在工程建築/設計模式,但這QA是一個良好的開端安全邏輯移動到一個控制器或視圖模型:https://softwareengineering.stackexchange.com/q/197977/38951
當然這是可能的。你可以使用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格式,這會花費很長時間......
您管理的用戶存儲自己,你不使用任何會員提供商? –
管理我自己。 – Pelicer
我想你想要做的是把安全的東西放在業務邏輯層而不是用戶界面,http://softwareengineering.stackexchange.com/q/197977/38951 –