WPF中的身份验证和角色

WPF中的身份验证和角色,wpf,authentication,.net-4.0,Wpf,Authentication,.net 4.0,我正在WPF做一个项目。我需要对用户进行身份验证,并根据角色为模块提供可访问性。我是否有更好的方法在WPF中实现这一点。这部分取决于您需要代码的安全程度 但是,对于所有用例,请使用模型-视图-模型模式。在每个ViewModel中,可能最适合放在所有ViewModel类的基类中,包括一个状态变量,该变量返回字符串并在安全状态更改时引发PropertyChanged事件 以该字符串的值为基础对每个视图类进行演示,遵循与此问题的公认答案类似的模式: 答案描述了如何使用布尔值执行此操作,但如果View

我正在WPF做一个项目。我需要对用户进行身份验证,并根据角色为模块提供可访问性。我是否有更好的方法在WPF中实现这一点。

这部分取决于您需要代码的安全程度

但是,对于所有用例,请使用模型-视图-模型模式。在每个ViewModel中,可能最适合放在所有ViewModel类的基类中,包括一个状态变量,该变量返回字符串并在安全状态更改时引发PropertyChanged事件

以该字符串的值为基础对每个视图类进行演示,遵循与此问题的公认答案类似的模式:

答案描述了如何使用布尔值执行此操作,但如果ViewModel状态变量需要两个以上的状态,则可以使用除“True”或“False”之外的任何字符串值

所有.NET代码,包括WPF,都可以轻松地进行反向工程。如果您的代码需要比这更安全,也就是说,如果您的用例假设您的用户将入侵您的WPF程序,那么您将希望使用InishTech的SLPS或Dotfuscator等商用产品对大部分ViewModel代码进行模糊处理和/或加密


或者,您可以使用相同的MVVM模式编写Silverlight应用程序,但我不确定Silverlight用户是否能够像桌面WPF用户那样访问二进制文件。

我只想切换UI中某些选项的可见性。然后,您应该可以使用与链接问题中的方法几乎相同的方法:为每个查看状态定义样式,并使用绑定到ViewModel布尔值的DataTrigger应用样式,该布尔值可能命名为“Authenticated”。您可以在ViewModel getter中为该“Authenticated”属性放置实际的验证代码。