由于我决定通过查询字符串传递特定记录的 id,所以我加密了 id ( id=090ed4fe-daec-452d-b025-f664dcc1164d
) 并将其值附加到 url。
我们都知道 / 的 url 编码值为 %2f。因此,在应用程序的特定实例上id=090ed4fe-daec-452d-b025-f664dcc1164d
,经过加密然后编码的 id 值 () 返回一个值:
M2vaIbPkOqO6lw4jv%2bqE2f%2fhTrK495ny92uPcLBOJBNcMpg1RUme%2fvAo6LyKfdp9e
当我将鼠标悬停在链接上时,我得到:
M2vaIbPkOqO6lw4jv+qE//hTrK495ny92uPcLBOJBNcMpg1RUme/vAo6LyKfdp9e
对于正确的“加密和编码”部分。但是当我使用该Context.Request.RawUrl
属性来检索我得到的 url 时:
M2vaIbPkOqO6lw4jv+qE/hTrK495ny92uPcLBOJBNcMpg1RUme/vAo6LyKfdp9e
所以问题是它从字符串中删除了一个(1)'/',因此我不能再解密字符串了。
顺便说一句,我已经使用这个模块几个月了,从来没有遇到过这个问题。事实证明,我第一次有两个(2)'/'(2f%2f)彼此相邻。
请问,无论如何我可以Context.Request.RawUrl
返回正确的字符串并阻止它剥离一个(1)'/'吗?