我正在使用 .NET 的 IIdentity 和 IPrincipal 对象来实现基于角色的安全性,并且我正在根据当前用户拥有的角色修改显示的控件。
我的问题是在 WPF 窗口中启用/禁用字段的推荐方法是什么 - 显示/隐藏依赖于 IIdentity.IsInRole 类型调用的字段。
这可以在 XAML 中完成,还是我必须将其抽象为代码,而我认为后面的代码有点混乱;
this.txtUserName.IsReadOnly = !MyPrincipal.CurrentPrincipal.IsInRole("Administrator");
this.mnuCreateUser.Visibility = MyPrincipal.CurrentPrincipal.IsInRole("Administrator");
? Visibility.Hidden : Visibility.Visible;
(注意;我的代码在执行函数时检查角色,我要做的是根据角色修改 GUI,因此用户看不到/看到他们无权访问的只读元素)