C# 强类型数据集:重写列get:Set
我们使用数据集作为数据访问层。 目前有一些列存储加密数据 使用CLR,我能够创建一个SQL函数来解密select中的数据,但在讨论中,我们确定这是一个安全风险 我想做的是C# 强类型数据集:重写列get:Set,c#,xsd,strongly-typed-dataset,C#,Xsd,Strongly Typed Dataset,我们使用数据集作为数据访问层。 目前有一些列存储加密数据 使用CLR,我能够创建一个SQL函数来解密select中的数据,但在讨论中,我们确定这是一个安全风险 我想做的是 重写数据表列的get/set,以便在使用get时取消对值的加密 并返回一个可读字符串,然后在集合上对数据进行加密 或者对表适配器执行一些操作,以便在select/update上执行与上面相同的操作 类型化数据表是分部类。虽然无法重写属性,但可以在另一个文件中添加更多方法,这些方法将在设置时加密,在获取时解密,并将值存储在原始属
类型化数据表是分部类。虽然无法重写属性,但可以在另一个文件中添加更多方法,这些方法将在设置时加密,在获取时解密,并将值存储在原始属性中。您可以尝试为此任务创建扩展方法:
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);
}
}
}
您可以提供的任何参考资料或示例?类型化数据集是分部类,但我在生成的强类型行定义中没有看到“partial”关键字。在visual studio 2012 pro.net 4.5数据集中,我确实看到类似公共分部类xyzRow:global::System.Data.DataRow的内容{考虑过这一点,真的很高兴有一种方法可以获得{return DecryptValue(value)}我已经有了字符串的扩展方法,所以我可以说table.value.encrypt/decrypt()并得到一个返回。我试图做的本质是将表适配器中的解密放在填充时或从DB获取数据时。感谢您的回复!是否可以扩展表适配器,使我能够处理填充时或获取时的数据?类似于