MVC 6加密URL参数帖子没有获得实际值

时间:2016-07-20 10:36:43

标签: asp.net asp.net-core-mvc asp.net-mvc-routing

我在使用参数加密时遇到问题。

我打电话的时候 http://localhost:51836/en-US/Vehicles/Edit/s5XHf7R6YtM=
它在解密后传递正确的id值。

我已将实际的Id存储到隐藏字段中。  我用的时候
它存储了ecrypted值而不是解密值。

如果我使用的是简单的 <input asp-for="ID" type="hidden" value = '@Model.ID' />
它存储了解密的值。

现在,当我尝试保存数据时,ID应该是解密值,但是它会显示0。我不明白为什么会这样。这是因为ID与参数和propertyName的名称相同。

如果您有任何解决方案,请告诉我,

由于 SAMIR

1 个答案:

答案 0 :(得分:0)

Base64编码包含三个不能在URL部分使用的字符,因此Base64编码需要进行URL转义。

麻烦的角色是:&#39; /&#39;,&#39; +&#39;和&#34; =&#34;。

如果编码值在URL的一部分中不包含任何不允许这些字符的URL,则URL将起作用,否则将失败。这就是为什么对于某些值它起作用而对于其他值失败的原因。

请参阅Base64