我正在开发一个WPF应用程序,它有一些权限限制,所以有一些屏幕只有管理员才能看到,一些功能只允许他们使用。
目前,我正在检查每个屏幕的构造函数方法上的权限访问级别,每个屏幕都有一个用户对象流经应用程序。但我不禁想到,一定有更聪明、更恰当的方法来做到这一点。
有没有可能使用某种PermissionHandler类来进行验证,并根据用户的权限级别设置用户可以和不能做的事情?
谢谢你的到来。
发布于 2017-01-23 19:08:10
我认为您想要做的是将安全内容放在业务逻辑层而不是UI中。
我不确定您的项目架构/设计模式,但这个QA是将安全逻辑转移到控制器或ViewModel:https://softwareengineering.stackexchange.com/q/197977/38951中的一个很好的开始
发布于 2017-01-23 18:34:08
这当然是有可能的。您可以使用单例模式,也可以使用静态类。类似这样的东西(伪代码):
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格式来说,这将花费太长的时间……
https://stackoverflow.com/questions/41803807
复制相似问题