Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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# 您可以使用RIA服务为实体属性添加安全性吗?_C#_.net_Silverlight_Wcf Ria Services - Fatal编程技术网

C# 您可以使用RIA服务为实体属性添加安全性吗?

C# 您可以使用RIA服务为实体属性添加安全性吗?,c#,.net,silverlight,wcf-ria-services,C#,.net,Silverlight,Wcf Ria Services,RIA服务允许您向域服务方法添加一个属性,如:RequiresRole(“Admin”)。这将自动检查调用该方法的用户是否具有正确的安全性。我想对实体上的属性执行类似的操作。例如,只有“经理”角色的用户才允许更改“比率”属性,但任何用户都可以更改“评论”属性。这可能吗?您可以使用。您可以创建一个属性,如RequiresManagerRole,该属性将检查用户是否处于Manager角色,如果用户不处于Manager角色,则不允许更改 然而,对于用户来说,这可能不是一个很好的体验。您可能希望以某种方

RIA服务允许您向域服务方法添加一个属性,如:RequiresRole(“Admin”)。这将自动检查调用该方法的用户是否具有正确的安全性。我想对实体上的属性执行类似的操作。例如,只有“经理”角色的用户才允许更改“比率”属性,但任何用户都可以更改“评论”属性。这可能吗?

您可以使用。您可以创建一个属性,如RequiresManagerRole,该属性将检查用户是否处于Manager角色,如果用户不处于Manager角色,则不允许更改

然而,对于用户来说,这可能不是一个很好的体验。您可能希望以某种方式将只读属性绑定到表单中,以确定该属性是否可编辑。您可以使用IValueConverter执行此操作,并在值转换器中检查用户角色以确定其是否为只读

更新:好的,我想Brad看到了这个问题,并且。这应该能够解决您想要做的事情,但采取了不同的方法。

您可以使用。您可以创建一个属性,如RequiresManagerRole,该属性将检查用户是否处于Manager角色,如果用户不处于Manager角色,则不允许更改

然而,对于用户来说,这可能不是一个很好的体验。您可能希望以某种方式将只读属性绑定到表单中,以确定该属性是否可编辑。您可以使用IValueConverter执行此操作,并在值转换器中检查用户角色以确定其是否为只读


更新:好的,我想Brad看到了这个问题,并且。这应该可以解决您想要做的事情,但采取了不同的方法。

支持属性安全性的更好方法是重写DomainService.Query方法,这样可以避免加载过多的数据。更多关于它的博客。

支持属性安全性的更好方法是重写DomainService.Query方法,这样可以避免加载过多的数据。写了更多关于它的博客