如何确保与breezejs添加或删除实体(how to secure add or delete e

2019-09-28 07:57发布

我怎么能保证我的SaveChanges添加或删除breezejs实体后?

  var newTodo = todoType.createEntity(initialValues);
  manager.addEntity(newTodo);

我只想添加/删除实体到登录的用户。 其他用户不应该能够通过JavaScript的黑客实体添加到另一个用户。

查询只允许通过entites的服务器上编辑EFContextProvider是可能的。 但它是如何与删除工作,或者补充的吗?

Answer 1:

您可以使用防止更改保存在服务器端

contexProvider的首要BeforeSaveEntitiesDelegate方法。

_contextProvider.BeforeSaveEntitiesDelegate = BeforeSaveEntities;

private Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(Dictionary<Type, List<EntityInfo>> arg)
        {
            var resultToReturn = new Dictionary<Type, List<EntityInfo>>();
            foreach (var type in arg.Keys)
            {
                var entityName = type.FullName;
                var list = arg[type];
                if (entityName == "xyz" && list[0].EntityState!="Added")
                {
                    resultToReturn.Add(type, list);
                }
            }
            return arg;
        }

这将不保存新添加的实体名称为“XYZ”。



文章来源: how to secure add or delete entities with breezejs