1

我需要通过客户端线程状态,但仅适用于特定的获取请求(又名链接)。因此,我不想将此状态添加到客户端的 ViewState 中,将其弄乱。状态需要加密。如何创建一个新的类似 ViewState 的字典并使用 machine.config 中 MachineKey 的密钥和设置对其进行加密?如果字典组件未公开,我如何使用 machine.config 中的密钥加密/解密字符串。我不想添加更多必须在我们的服务器场中复制的配置以复制现有功能。

4

1 回答 1

0

机器密钥配置可通过 System.Web.Configuration.MachineKeySection 访问,除了构造函数和 Reset 之外没有公共方法。

字符串的解密通过以下方法处理:

.method assembly hidebysig static string 
    DecryptStringWithIV(string s,
                        valuetype System.Web.Configuration.IVType ivType) cil managed

哪个电话

.method assembly hidebysig static uint8[] 
    EncryptOrDecryptData(bool fEncrypt,
                         uint8[] buf,
                         uint8[] modifier,
                         int32 start,
                         int32 length,
                         bool useValidationSymAlgo,
                         bool useLegacyMode,
                         valuetype System.Web.Configuration.IVType ivType) cil managed

这些都是私人的;未公开加密/解密功能。可以通过构造 HttpContext 通过 System.Web.IHttpHandler 的实现来访问解密,尽管我不确定可以去哪里调用加密功能。

于 2010-08-11T14:50:24.737 回答