2013-03-26 27 views
0

我收到了一封通過電子郵件發送的繼續鏈接。在此鏈接中,我添加了一些由Base64編碼的敏感加密數據。該值包含一個斜槓,編碼爲%2F(帶有Server.UrlEncode)。當我將鏈接發送到Windows Live地址時,我發現Outlook.com將%2F解碼爲正斜槓。我怎樣才能防止這一點?如何防止解碼Windows Live郵件中的編碼正斜槓?

我送:
<a href="http://www.tempuri.com/key=RVQ%2FcGhvbmVfaG9tZSE%3D">Continue</a>

但我看到:
<a href="http://www.tempuri.com/key=RVQ/cGhvbmVfaG9tZSE=%3D">Continue</a>

它可以通過任何郵件客戶端發送鏈接http://www.tempuri.com/key=RVQ%2FcGhvbmVfaG9tZSE%3D到Windows Live地址複製。

+0

請提供您的代碼的快照,以便我們可以幫助! – 2013-03-26 10:32:56

+0

要清楚的是,Base64編碼不提供任何形式的加密,任何人都可以解碼它。如果您需要執行加密,請使用MachineKey.Protect靜態方法。 – Levi 2013-03-26 15:28:02

回答

0

您可以嘗試對值進行兩次編碼。

因此RVQ/cGhvbmVfaG9tZSE=編碼爲RVQ%2FcGhvbmVfaG9tZSE%3D - >這是您的價值。

現在編碼這個,你得到RVQ%252FcGhvbmVfaG9tZSE%253D - >電子郵件客戶端不會解碼%252F斜線,所以你的問題已經消失。

只是不要忘記解碼值兩次;-)

+0

會工作,但郵件出去給很多類型的客戶:( – 2014-06-09 09:39:15