你好,经验丰富的开发人员!
我想知道是否有可能以某种方式覆盖 .Net Request.QueryString 对象?如果无需创建我自己的 HTTP 模块就可以做到这一点,那就太好了。
我的任务是 RSA(1024) 加密我的应用程序中的所有查询字符串。但是,该应用程序已经构建,并且有很多地方正在设置查询字符串,所以理想情况下我想做一个全局更改,将解密查询并将其放在正常的 Request.QueryString 中,以便不必更改我的到处都是代码,也许可以将它传递给我团队中的其他开发人员,他们也不必更改他们的代码。
现在,我已经构建了加密对象并使用 SessionID 进行盐分,以使每个会话的密钥都是唯一的。我还尝试在 Global.asax 中拦截 HTTP 请求,以便用解密的查询重写请求路径,但是,这是一个失败,因为在这些页面上执行的任何回发都会将解密的查询字符串放回 POST,我显然不想要。
所以现在我正处于一个阶段,我不想重写路径,而是在全局级别拦截或覆盖 Request.QueryString 对象,并在调用 this[key] 时使用我的解密方法,因此,不必停止使用 Request.QueryString。然而,在网上搜索了几个小时后,我找不到一个关于如何做到这一点的例子......
如果有人可以帮助我解决这个问题,我将不胜感激!