用户权限控制

时间:2017-01-23 10:12:40

标签: c# wpf

我正在开发一个具有一些权限限制的WPF应用程序,因此只有管理员可以看到的屏幕和仅允许某些功能的屏幕。

目前,我正在检查每个屏幕的构造方法上的权限访问级别,其中User对象流通过应用程序。但我不能认为必须有一种更聪明,更恰当的方法来做到这一点。

是否可以使用某种PermissionHandler类来进行验证,并设置用户可以做什么和不能做什么,因为他的权限级别?

感谢advence。

2 个答案:

答案 0 :(得分:2)

我认为您想要做的是将安全性内容放在业务逻辑层而不是UI中。

我不确定您的项目架构/设计模式,但此QA是将安全逻辑移动到Controller或ViewModel的良好开端:https://softwareengineering.stackexchange.com/q/197977/38951

答案 1 :(得分:1)

当然有可能。您可以使用Singleton模式或静态类。类似的东西(伪代码):

struct sess_state

甚至可以绑定到public static class PermissionHandler { public static User {get;set;} public static Login(string username, string password) { //set User here } } 或在User.Claims上设置方法以获得权限。无论如何,如果您只是使用它来显示/隐藏您的控件,您的应用程序可以通过使用例如Snoop轻松攻击。所以如果你真的需要"保护"使用某些功能时,您应该检查业务逻辑或服务器端(如果有的话)。

如果你去服务器端,我强烈建议你使用令牌服务。例如https://jwt.io/ADFS。当然还有很多其他的,但这种QA格式需要很长时间......