我想验证编辑操作的实体所有权(已经在get上)。 我已经实现了自定义IPrincipal,所以我有实际的用户ID,但是如何将它与实体属性进行比较?
我看到的唯一方法是加载实体并对其进行比较,这会在每个操作方法中产生一系列if条件。
理想的是一些属性,但在属性中我只有实体ID,而不是实体本身,你不能传递任何对象(也没有实体既没有存储库)来归属。
你是如何解决这个问题的?
由于
答案 0 :(得分:0)
我通过EntityBase实现接口IOwnedEntity的扩展方法解决了这个问题(有两个属性:Id和OwnerId)。
在这个扩展方法中,我将IOwnedEntity.OwnerId与实际用户ID(从cookie中获取)进行比较,如果不相等,则抛出我自己的类型异常(NotAuthorizedException)。