C# 中继器控制中的解密?

C# 中继器控制中的解密?,c#,asp.net,C#,Asp.net,我有一个中继器控件,它绑定到数据库中的一个表。其中一个数据列是加密的,因此它返回一个字节数组。我有一个解密函数,我运行它以获得适当的值。如何使用此函数在中继器控件绑定中显示正确的值 编辑: 为了获得更多的澄清,我希望(可能的)类似于此: Text='<%# _encryptor.Decrypt(Container.DataItem.SSN) %>' Text='' 您的方法看起来非常接近。只需确保在解密之前使用EVAL()提取值即可 Text='<%# _encryptor.

我有一个中继器控件,它绑定到数据库中的一个表。其中一个数据列是加密的,因此它返回一个字节数组。我有一个解密函数,我运行它以获得适当的值。如何使用此函数在中继器控件绑定中显示正确的值

编辑:

为了获得更多的澄清,我希望(可能的)类似于此:

Text='<%# _encryptor.Decrypt(Container.DataItem.SSN) %>'
Text=''

您的方法看起来非常接近。只需确保在解密之前使用
EVAL()
提取值即可

Text='<%# _encryptor.Decrypt(Eval("SSN").ToString) %>'
Text=''

如果您有大量数据,我会自己使用Container.DataItem以避免反射开销。看起来你很接近

Text='<%# _encryptor.Decrypt( Container.DataItem("SSN") ) %>'
Text=''
编辑:您可能还需要在此处进行显式转换

Text='<%# _encryptor.Decrypt( (MyObject)Container.DataItem("SSN") ) %>'
Text=''

这里也有很多信息:请记住Eval使用反射,因此有一些重要的开销。谢谢@Justin。它使用反射来处理输入——没错。我喜欢它只是因为它更方便。开销通常不太明显,而且语言之间的语法是一致的,而且在任何情况下都更简单。逐行解密将是引起注意的开销。是的,除非数据集很大,否则不会引起注意。我只是有点偏执,因为我看到它会影响性能。对于较小的系统来说,打字和阅读要容易得多。老实说,我不知道我写的东西会有用。我只是编造了这个假设,并假设使用代码隐藏中定义的函数在我的asp页面中是不可用的。谢谢不客气,在UI中提供C#代码非常方便。我一直都在做类似的事情。通常做同样的事情,在数据库中存储某种敏感数据时进行加密,但您希望在页面上以纯文本形式看到它。