我正在开发一个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 –