2

データ アクセス層としてデータ セットを使用しています。現在、暗号化されたデータを格納する列がいくつかあります。

CLR を使用すると、select でデータを復号化するための SQL 関数を作成できましたが、議論の結果、これはセキュリティ リスクであると判断されました。

私がやろうとしていることは、

  1. データ テーブル列の get/set をオーバーライドして、get 時に値の暗号化を解除して読み取り可能な文字列を返し、set でデータを暗号化するようにします。
  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

型付きDataTablesは部分的なクラスです。プロパティをオーバーライドすることはできませんが、setで暗号化し、getで復号化して、元のプロパティに値を格納するメソッドを別のファイルに追加できます。

于 2012-06-13T13:47:10.467 に答える