ASP.NET MVC:如何验证编辑操作的实体所有权?

时间:2013-04-07 19:46:24

标签: asp.net-mvc attributes

ASP.NET MVC应用程序中的

我想验证编辑操作的实体所有权(已经在get上)。 我已经实现了自定义IPrincipal,所以我有实际的用户ID,但是如何将它与实体属性进行比较?

我看到的唯一方法是加载实体并对其进行比较,这会在每个操作方法中产生一系列if条件。

理想的是一些属性,但在属性中我只有实体ID,而不是实体本身,你不能传递任何对象(也没有实体既没有存储库)来归属。

你是如何解决这个问题的?

由于

1 个答案:

答案 0 :(得分:0)

我通过EntityBase实现接口IOwnedEntity的扩展方法解决了这个问题(有两个属性:Id和OwnerId)。
在这个扩展方法中,我将IOwnedEntity.OwnerId与实际用户ID(从cookie中获取)进行比较,如果不相等,则抛出我自己的类型异常(NotAuthorizedException)。