Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有一种简单的方法将一个组限制为仅2个屏幕?_C#_Silverlight - Fatal编程技术网

C# 是否有一种简单的方法将一个组限制为仅2个屏幕?

C# 是否有一种简单的方法将一个组限制为仅2个屏幕?,c#,silverlight,C#,Silverlight,在我的Silverlight应用程序中,我有15个以上的屏幕。我希望权限组“CanOnlySeeTraining”不能访问除2个屏幕之外的所有屏幕。我知道我可以把代码放在下面,但问题是我必须把代码放在每个屏幕上,除了我想让他们看到的2个屏幕。在Silverlight C#中,有没有一种方法可以说是从顶部放置权限,然后沿着屏幕树向下流动(如Windows文件夹权限)?如果你需要更多的澄清,请告诉我。谢谢 partial void <ScreenName>_CanRun(ref bool

在我的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;
        }
    }
partial void\u CanRun(参考bool结果)
{
if(this.User.HasPermission(Permissions.canolyseetraining))
{
结果=假;
}
其他的
{
结果=真;
}
}

我们并不完全这样做,但是。。。我们的应用程序为每个窗口(或批处理,我们有几个)分配一个“活动id”,每个窗口中启动的标准部分是检查用户的权限组是否有权访问该活动。我们有一个比较组和活动的通用功能,以确定是否允许这种组合;该函数只返回一个标志值,表示启动是否应继续。所有操作都使用“允许启动”检查功能,并且只有在特别允许的情况下才继续。没有人需要像您的样品那样进行任何特定的检查,他们只需要知道是否允许他们现在继续

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


我们的实现依赖于继承,以确保不会跳过check函数,并且只有少数基本对象(我认为是两个)实际对check进行了编码

谢谢你,戴维。你能详细阐述一下你是如何做到这一点的,或者提供一些代码示例吗?谢谢。我们有一个定义受控活动(通常是应用程序屏幕)的表,另一个定义用户和用户组的表,一个将用户链接到组的表,以及一个将受控活动与用户组和权限级别(无、只读、修改、创建或管理)关联的最终链接表(对于需要批准的工作流))。有一个标准代码,用于检查用户对某个活动拥有哪些权限,并适当设置屏幕级别的对象权限。如果用户没有对屏幕的权限,则不会显示在任何菜单中。