我们使用数据集作为我们的数据访问层。目前有一些列存储加密数据。
使用 CLR,我能够创建一个 SQL 函数来解密选择中的数据,但在讨论中我们已经确定这是一个安全风险。
我想做的是要么
- 覆盖数据表列的获取/设置,以便在获取时它将取消加密值并返回可读字符串,并且在设置上将加密数据。
- 或对表适配器执行某些操作,以便在选择/更新时执行与上述相同的操作。
我们使用数据集作为我们的数据访问层。目前有一些列存储加密数据。
使用 CLR,我能够创建一个 SQL 函数来解密选择中的数据,但在讨论中我们已经确定这是一个安全风险。
我想做的是要么
您可以尝试为此任务创建扩展方法:
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
类型化数据表是部分类。虽然您无法覆盖属性,但您可以在另一个文件中添加更多方法,这些方法将在设置时加密并在获取时解密,将值存储在原始属性中。