gpt4 book ai didi

c# - 确保从特定链接访问页面

转载 作者:行者123 更新时间:2023-11-30 19:58:59 26 4
gpt4 key购买 nike

假设我有 link1.aspx 和 link2.aspx。在 link1.aspx 中,我将用户重定向到 link2.aspx。

检查 link2.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;
}
}

关于c# - 确保从特定链接访问页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25293165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com