如何使用breezejs保护添加或删除实体的安全性

时间:2015-07-25 00:47:59

标签: javascript c# asp.net security breeze

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

<int:header-filter>

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

通过在服务器上编辑EFContextProvider,可以仅查询允许的entites。但它如何与删除或添加?

1 个答案:

答案 0 :(得分:2)

您可以使用

在服务器端阻止保存更改

覆盖contexProvider的 BeforeSaveEntitiesDelegate 方法。

E.g

_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”。