我在WPF做一个项目。我要求对用户进行身份验证,并根据角色为模块提供可访问性。我是否有更好的方法在WPF中实现这一目标。
答案 0 :(得分:2)
部分取决于您需要代码的安全性。
但是,对于所有用例,请使用Model-View-ViewModel模式。在每个ViewModel中,最好放在所有ViewModel类的基类中,包括一个状态变量,它返回一个字符串,并在安全状态发生变化时引发PropertyChanged事件。
根据类似于此SO问题的接受答案的模式,为每个View类基于该字符串的值创建演示文稿:
https://stackoverflow.com/questions/3868164/
答案描述了如何使用布尔值执行此操作,但如果ViewModel状态变量需要两个以上的状态,则可以使用“True”或“False”以外的任何字符串值。
所有.NET代码(包括WPF)都可以轻松进行逆向工程。如果您的代码需要比这更安全,也就是说,如果您的用例假定您的用户将破解您的WPF程序,那么您将需要使用InishTech等商用产品对大部分ViewModel代码进行模糊处理和/或加密。 SLPS或Dotfuscator或其他。
或者,您可以使用相同的MVVM模式并编写Silverlight应用程序,但我不确定Silverlight用户是否可以像桌面WPF用户那样访问二进制文件。