0

在 ASP.NET MVC 应用程序中,我想验证实体所有权的编辑操作(已经在获取)。我已经实现了自定义 IPrincipal,所以我有实际的用户 ID,但是如何将它与实体属性进行比较?

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

理想的是一些属性,但在属性内部我只有实体 ID,而不是实体本身,你不能将任何对象(实体和存储库)传递给属性。

你如何解决这个问题?

谢谢

4

1 回答 1

0

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

于 2013-04-09T13:25:44.723 回答