Javascript 如何使用breezejs保护添加或删除实体
在向breezejs添加或删除实体后,如何保护SaveChangesJavascript 如何使用breezejs保护添加或删除实体,javascript,c#,asp.net,security,breeze,Javascript,C#,Asp.net,Security,Breeze,在向breezejs添加或删除实体后,如何保护SaveChanges var newTodo = todoType.createEntity(initialValues); manager.addEntity(newTodo); 我只想向登录用户添加/删除实体。其他用户不应该能够通过javascript黑客将实体添加到另一个用户 通过在服务器上编辑EFContextProvider,可以仅查询允许的实体。但它如何与删除或添加一起工作呢?您可以使用 重写contexProvider的Be
var newTodo = todoType.createEntity(initialValues);
manager.addEntity(newTodo);
我只想向登录用户添加/删除实体。其他用户不应该能够通过javascript黑客将实体添加到另一个用户
通过在服务器上编辑EFContextProvider,可以仅查询允许的实体。但它如何与删除或添加一起工作呢?您可以使用 重写contexProvider的BeforeSaveEntitysDelegate方法 例如
\u contextProvider.beforeSaveentiesDelegate=beforeSaveenties;
保存实体之前的专用字典(字典参数)
{
var resultToReturn=新字典();
foreach(参数键中的变量类型)
{
var entityName=type.FullName;
变量列表=参数[类型];
如果(entityName==“xyz”&&list[0]。EntityState!=“已添加”)
{
resultToReturn.Add(类型、列表);
}
}
返回arg;
}
这将不会保存新添加的实体名称“xyz”
_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;
}