如果我有自定义电影的详细信息页面(数据库中的主键电影是整数),例如:http://yyy.yy/PagesDetails.aspx?filmId=5 - 我应该在Page_Load事件中验证filmId是否为数字?因为有人可以修改链接,设置filmId =例如'abc'然后呢?
答案 0 :(得分:3)
在将其用于整数值的操作之前,您可以检查它是否是有效整数。
您可以编写像这样的扩展方法
public static bool IsNumeric(this string input)
{
int temp;
return int.TryParse(input, out temp);
}
并在您的页面加载中使用它
string strFilmId=Request.QueryString["filmId"];
if(strFilmId.IsNumeric())
{
int filmId=Convert.ToInt32(strFilmId);
//use the integer variable now
}
else
{
// show the message to user that the url is not valid.
}