gpt4 book ai didi

javascript - 如何使用 breezejs 保护添加或删除实体

转载 作者:行者123 更新时间:2023-11-30 16:43:13 24 4
gpt4 key购买 nike

在我向 breezejs 添加或删除实体后如何保护 SaveChanges?

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

我只想向登录用户添加/删除实体。其他用户不应该能够通过 javascript hack 将实体添加到另一个用户。

可以通过在服务器上编辑 EFContextProvider 来仅查询允许的实体。但它如何与删除或添加一起使用?

最佳答案

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

覆盖 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”。

关于javascript - 如何使用 breezejs 保护添加或删除实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31621718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com