1

RIA 服务允许您向域服务方法添加属性,例如:RequiresRole("Admin")。这将自动检查调用该方法的用户是否具有正确的安全性。我想为实体上的属性做类似的事情。例如,仅允许“经理”角色中的用户更改“评分”属性,但任何用户都可以更改“评论”属性。这可能吗?

4

2 回答 2

1

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

于 2011-02-15T17:13:48.570 回答
0

您可以使用自定义验证属性来执行此操作。您可以创建一个属性,例如 RequiresManagerRole,它会检查用户是否处于 Manager 角色中,如果用户不是,则不允许更改。

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

更新:好的,我认为布拉德看到了这个问题并写了这篇博文来解决它。这应该解决您想要做的事情,但采取不同的方法。

于 2009-12-08T01:18:12.850 回答