如果缺少必需的querystring參數並讓global.asax將其與Application_Error一起捕獲,然後將用戶轉移到錯誤頁面,是否有任何問題導致asp.net頁面拋出(自定義錯誤)?我有幾個執行這些檢查的基類,我不確定將錯誤傳達給用戶的最佳方式。確定爲丟失的所需查詢字符串參數拋出錯誤?
所以,這樣的事情:
int reqParam;
if(!isParamSet("myReqParam", out reqParam))
{
throw new QuerystringParamMissingException();
}
,然後通過的Application_Error Global.asax中捕獲。
另外,從安全角度來看,我應該向用戶提供多少信息?只是這是一個錯誤,或者查詢字符串參數丟失,或者缺少哪個參數,或者甚至是該參數指示的用途?
我的主要目標是讓人們避免使用查詢字符串或複製粘貼querystring。我仍然沒有確定向用戶提供有關錯誤的多少信息(「所需的查詢字符串參數丟失」或「必需的查詢字符串參數XYZ丟失」)。但是,我打算記錄錯誤。 你是什麼意思「應該驗證客戶端」?如果他們想修改查詢字符串,那麼客戶端代碼會阻止它們? – balazs 2010-05-19 12:17:51
@Balazs - 我的意思是,在網站的正常運行中,不應該有可能產生一個無效的查詢字符串,所以缺少的參數確實是一個例外情況。 – ChrisF 2010-05-19 12:24:57
Gotcha。感謝您的澄清。 – balazs 2010-05-19 12:27:08