避免用户使用查询字符串访问页面的方法

时间:2016-10-14 15:02:39

标签: c# asp.net webforms

我有一个页面,我希望在用户完成保存表单时访问该页面。我有一个Response.Redirect("MyPage.aspx?queryStringParam=123")(基于字段选择的值chages)。

在页面上,我检查是否正在传递值并且一切正常:

if (Request.QueryString["queryStringParam"] != null)
{
    int queryStringParam;
    if(int.TryParse(Request.QueryString["queryStringParam"], out id))
    {
        hfQueryStringParam.Value = queryStringParam.ToString();
    }
    else
    {
        Response.Redirect(ResolveUrl("~/Default.aspx"));
    }
}
else
{
    Response.Redirect(ResolveUrl("~/Default.aspx"));
}

如果用户尝试键入页面,它会检查queryString,如果没有传递,它会将他重定向到默认页面,但是问题是,如果他将queryStringParam键入url ,页面将加载。我不希望这种情况发生。

有没有办法阻止用户通过输入网址访问该网页,只能通过Response.Redirect访问该网页?

1 个答案:

答案 0 :(得分:2)

从保存表单的页面,在重定向到MyPage.aspx之前的会话中存储一些内容。在MyPage.aspx中首先检查会话值。如果它没有您从上一页设置的值,请​​将用户重定向到默认页面。