2012-10-24 57 views
1

我面臨着以下問題:空引用異常,但加密的查詢字符串

我進行加密,然後我的查詢字符串編碼的結果,所以我得到url這樣的:


PageDetail.aspx?enc=LFgzoz6LxQ54RaOMuZCJlluim9oH%2fRW2bpGJEo3rZ7E1Y8ixg9vbHRRc2koFdqbK%2f5PS%2fIv1v%2b3N%2beLwXJMtpdTOEwqwZLoTkh%2bIPW1S4f4764i3MY%2f9AECdSNmIgeaSovpJouXp3bQi4ntOyJOzW4eXawpAvS3gGvPWQLsr0My9NcAd5PT5Qwr2vVOfzjAYc%2f%2f1AdseguQUyWX7sIPK%2fPGYxLmjU204I2bGS%2f8%2fSPCXp4fZfbfJIaafBmSFbRhXAb%2fneWQFb83PzcP7Ljk9o90qMAeVuRvwhAcy6IsPmW76OpwT8JRK8Vw%2fTrmoSDmNCMYN1VuCm%2fT6fvg1mbiruqmPnDoKXr8zR2ChY1zev8leWHWPDmn572Hi02w6nu4vamOSlgIvH2LNEHUYYtIITX1DH%2bSagIl%2fuiNtWsQsdrqd%2b31ksO8GVYuJcAnn7%2fcST4w5Fzs3JPO2cPwiMeXDQw%3d%3d 

然後我嘗試解密結果: 但當我嘗試通過查詢字符串:

Request.QueryString["enc"] 

我得到空引用異常我不知道爲什麼?

+0

你可以張貼堆棧跟蹤?或嘗試請求[「enc」]。 – Habibillah

+0

我收到相同的異常: '在UI.PageDetail.Page_Load(Object sender,EventArgs e)in F:\ ... \ UI \ PageDetail.aspx.cs:line 29 at System.Web.Util.CalliHelper .EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)' –

+0

您可能嘗試訪問頁面某一點的Request對象生命週期,當它尚不存在或已被銷燬時。 – wizzardmr42

回答

0

該行代碼不會拋出空引用異常,因爲它找不到查詢字符串部分,但因爲找不到請求對象。如果您正在查找的部分不存在,則QueryString部分將僅返回null。

可能這是因爲這段代碼正在被寫入的地方沒有設置請求對象(例如應用程序啓動事件)。你需要將代碼移到更合適的地方。如果您認爲您應該能夠從您所在的位置訪問Request對象,那麼您需要向我們提供該行代碼的上下文的更多詳細信息。

+0

你能告訴我哪一行代碼是你的意思嗎? –

+0

'的Request.QueryString [「ENC」]'在PageDetail.aspx' –

+0

的'頁面加載之前,我做了加密,我可以達到的查詢字符串! –

2

你在查詢字符串中的參數有514個字符,認爲它可能是問題的原因。
查詢字符串的長度有限制。

+1

嗯,那麼如何減少長度,只讓我再加密編碼,並且我希望解密的查詢字符串! –

+0

我不確定它是否可行,但您可以嘗試使用任何無損壓縮算法來壓縮您的查詢字符串。 – Jacek

+1

@Jacek:一般來說,強烈加密的東西是隨機出現的,這意味着壓縮(依賴於模式)不能真正做到。 – Chris