2015-12-26 53 views
0

我渲染ActionLink的是這樣的:如何加密/解密的查詢字符串數據

@Html.ActionLink(techName, "Details","Home", new { TopicID = item.TechID },null) 

我想查詢字符串加密,這樣的事情:Home/Details?TopicID=Ek7vP1YwVhc=

我搜索關於這個主題和found a piece of code加密和解密數據:

(new MvcSerializer()).Serialize(<Your data here>, SerializationMode.EncryptedAndSigned) 

And then to reverse the process... 

(new MvcSerializer()).Deserialize(<Serialized data here>, SerializationMode.EncryptedAndSigned) 

如何使用上述方法來加密和解密我的查詢字符串?

+0

您複製該代碼的[post](http://stackoverflow.com/a/24165460/266143)提到了「MVC Futures」包,並且該問題中還有另一個答案顯示了工作方法。爲什麼你要求獲得這個問題中最低票數答案的幫助?你有什麼嘗試?如果你進一步搜索,你會[尋找](http://stackoverflow.com/questions/25828553/cannot-find-html-serialize-helper-in-mvc-5-futures)目前唯一支持的過載那個包裏的那個類沒有'SerializationMode'重載了。 – CodeCaster

回答

1

你說你想加密(防止竊聽者能夠看到的祕密數據),但它聽起來更像是要編碼 - 格式化數據,使得它可以安全地被用作URI零件。

您展示的例子看起來像的base64:

var base64EncodedText = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(myText)); 

另一種方法是Uri.EscapeString:

var uriEncodedText = Uri.EscapeString(myText); 

後者只改變的特殊字符,因此可能看起來更人工可讀的。這可能是一個優點或缺點。