有没有一种简单的方法可以将一组限制为2个屏幕?

时间:2015-07-10 21:41:52

标签: c# silverlight

在我的Silverlight应用程序中,我有15个以上的屏幕。我想要一个权限小组' CanOnlySeeTraining'无法访问除2个以外的所有屏幕。我知道我可以把代码放在下面,但问题是我必须为每个屏幕添加这个代码,除了我希望他们看到的2之外的每个屏幕。在Silverlight C#中有没有办法说从顶部获取权限并在屏幕树下流动(如Windows文件夹权限)?如果您需要更多说明,请与我们联系。感谢。

partial void <ScreenName>_CanRun(ref bool result)
    {
        if (this.User.HasPermission(Permissions.CanOnlySeeTraining))
        {
            result = false;
        }
        else
        {
            result = true;
        }
    }

1 个答案:

答案 0 :(得分:0)

我们不完全这样做,但是......我们的应用程序为每个窗口分配一个'活动ID'(或批处理过程,我们有几个),每个启动的标准部分是检查用户是否权限组可以访问该活动。我们有一个比较group&amp; amp;用于确定是否允许该组合的活动;该函数只返回一个标志值,表示启动是否应该继续。 Everything 使用“启动允许”检查功能,只有在特别允许的情况下才会继续。没有人需要像你的样本那样进行任何特定的检查,他们只需要知道他们是否可以立即继续。

我们的关系数据保存在数据库表中,但将其移动到文件中相当简单。

我们的实现依赖于继承来确保不会跳过检查函数,并且只有少数基础对象(我认为两个)实际上具有检查编码。