如果缺少必需的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