确保从特定链接访问页面
本文关键字:访问 链接 确保 | 更新日期: 2023-09-27 18:17:47
如果我有link1。和link2.aspx。link1之内。
链接到link2.aspx。检查链接的最有效方法是什么?Aspx只能通过link1.aspx?
例如:
link2.aspx:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if page is not accessed via link1.aspx
{
Response.Redirect("~/portal.aspx");
}
}
}
我可以使用查询字符串,但还有其他方法吗?
您可以使用UrlReferrer。然而,这不是一种检测用户来自何处的安全方法。
例如
if (string.Equals(Request.UrlReferrer.AbsoluteUri,
"YOUR_REFERRER_URL",
StringComparison.InvariantCultureIgnoreCase))
{
}
如果它是在你的应用程序中的页面之间重定向,我想建议使用SessionState,这是比UrlReferrer更安全和健壮。
link1.aspx.cs
private bool IsValidUrl
{
set { Session["IsValidUrl"] = true; }
}
protected void Button1_Click(object sender, EventArgs e)
{
IsValidUrl = true;
Response.Redirect("link2.aspx");
}
link2.aspx.cs
private bool IsValidUrl
{
get
{
if (Session["IsValidUrl"] != null)
return Convert.ToBoolean(Session["IsValidUrl"]);
return false;
}
set { Session["IsValidUrl"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (IsValidUrl)
{
// user comes from valid url.
// .... Do somthing
// Reset session state value
IsValidUrl = false;
}
}
您可以使用Request.UrlReferrer
属性来检查用户来自哪个页面