0

我有一个使用 Breeze 的“网络表单”、“数据库优先实体”项目。我有一个包含敏感数据(例如 SSN#)的“人员”表。目前我有一个用于 GetPeople 的 IQueryable web api。

我正在处理的当前页面是“管理人员”屏幕,但它不用于编辑或查看 SSN#。我想我知道如何使用 BeforeSaveEntity 来确保用户将无法保存 SSN 更改,但是有没有办法不将 SSN#s 传递给客户端?

注意:我宁愿只使用一个 EDMX 文件。现在,我能看到的唯一方法是在数据库中为我要传递给客户端的每组数据都有一个“视图”,这些数据与表不完全匹配。

4

2 回答 2

1

您还可以使用 JSON.NET 序列化属性来抑制 SSN 从服务器到客户端的序列化。请参阅有关序列化属性的 JSON.NET 文档。

于 2013-05-21T15:58:46.907 回答
0

分开你的桌子。(目前,这是唯一想到的解决方案。)

将您的 SSN 数据放在具有相关键(1 对 1 关系)的另一个表中,问题将得到解决。(只需处理您的保存以备不时之需。)

如果您使用的是 Breeze,它会起作用,因为您几乎无法控制用户登录后的 Breeze API 交互,因此分离数据更安全。(微风通常很棒,但在这种情况下它是有害的。)

于 2013-05-21T01:53:37.587 回答