2016-07-20 53 views
-1

我在使用參數加密時遇到問題。MVC 6加密URL參數後不得到實際值

當我打電話。
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

+0

也許你指的是Base64編碼,而不是加密。什麼是「加密」和「解密」參數,更新問題更加清晰。 – zaph

+0

是的,我正在使用Base64編碼 –

+0

Base64是編碼,而不是加密,更改刪除加密的問題。一個正確的標題和問題將有助於獲得答案。因爲它不是令人困惑的。將「加密」更改爲「Base64編碼」。 – zaph

回答

0

Base64編碼包括不能在URL的部分,這樣的Base64編碼必須是網址轉義使用三個字符。

麻煩的字符是:'/','+'和「=」。

如果編碼值在URL的一部分中不包含這些字符中的任何字符,則該URL將起作用,否則將失敗。這就是爲什麼某些值可以工作,而其他值則失敗。

請參閱Base64