2009-11-18 39 views
4

人物在我的應用程序需要用戶的電子郵件地址,加密,並且用urlencode它,一起將它傳遞到查詢字符串。的Request.QueryString去除加密文本

email = Server.UrlEncode(aes.Encrypt(email)); 

着陸頁做了的Request.QueryString [ 「電子郵件」],UrlDecodes它,然後將其解密。

string email   = Server.UrlDecode(Request.QueryString["eId"]); 
    string decemail   = aes.Decrypt(email); 
    return decemail; 

非常奇怪的行爲發生在一個「+」字符被刪除,因此解密失敗。

我試圖刪除UrlDecode,但這並沒有解決問題。

什麼解決的問題是這樣做的:

 string email   = Request.QueryString["eId"].ToString(); 
     string decemail   = aes.Decrypt(email); 
     return decemail; 

擺脫UrlDecode的,並調用一個ToString()的查詢字符串。

有誰知道爲什麼會發生這種情況? Request.QueryString默認調用urlDecode嗎?我不認爲它確實如此。

另外,爲什麼會做在這個實例中的ToString()的工作?

回答