2

我们使用数据集作为我们的数据访问层。目前有一些列存储加密数据。

使用 CLR,我能够创建一个 SQL 函数来解密选择中的数据,但在讨论中我们已经确定这是一个安全风险。

我想做的是要么

  1. 覆盖数据表列的获取/设置,以便在获取时它将取消加密值并返回可读字符串,并且在设置上将加密数据。
  2. 或对表适配器执行某些操作,以便在选择/更新时执行与上述相同的操作。
4

2 回答 2

2

您可以尝试为此任务创建扩展方法:

namespace ExtensionMethods
{
    public static class MyExtensions
    {
        public static void SetEncryptColumn(this DataSetType.DataTableRow row, string value)
        {
            row.Encrypt = EncryptValue(value);
        }

        public static string GetEncryptColumn(this DataSetType.DataTableRow row)
        {
            return DecryptValue(row.Encrypt);
        }
    }   
}

http://msdn.microsoft.com/en-us/library/bb383977%28v=vs.90%29.aspx

于 2012-06-13T14:12:54.083 回答
0

类型化数据表是部分类。虽然您无法覆盖属性,但您可以在另一个文件中添加更多方法,这些方法将在设置时加密并在获取时解密,将值存储在原始属性中。

于 2012-06-13T13:47:10.467 回答