C# 如果不是从ASP.NET/C中的重定向,则阻止查看页面#

C# 如果不是从ASP.NET/C中的重定向,则阻止查看页面#,c#,asp.net,webforms,C#,Asp.net,Webforms,我创建了一个页面,该页面根据您从上一页传递的ID加载页面。但是,我不希望有人能够手动将.aspx页面输入地址栏。我只希望用户能够查看这个页面,如果他们点击按钮,使他们那里。我听说过Document.referer,但我的页面中没有使用任何Javascript,这并没有提供足够的安全性。是否有任何内置的功能或技巧来实现这一点 提前谢谢 我会看一看交叉页的帖子: 具体而言,您可以检查:(来自MSDN): 您可以尝试检查HttpContext.Request.urlreferer(Request.u

我创建了一个页面,该页面根据您从上一页传递的ID加载页面。但是,我不希望有人能够手动将.aspx页面输入地址栏。我只希望用户能够查看这个页面,如果他们点击按钮,使他们那里。我听说过Document.referer,但我的页面中没有使用任何Javascript,这并没有提供足够的安全性。是否有任何内置的功能或技巧来实现这一点


提前谢谢

我会看一看交叉页的帖子:

具体而言,您可以检查:(来自MSDN):


您可以尝试检查
HttpContext.Request.urlreferer
Request.urlreferer
在MVC上)。如果他们直接输入URL,则该URL将为空。如果他们是从另一个页面发送的,它将有推荐人URL。

阻止直接导航的一种方法是要求POST请求和404 on GET…感谢您的回复。我尝试了您的代码,但在单击上一页的按钮后,它显示“非跨页文章”。上一.aspx页的按钮是否使用“Response.Redirect”命令访问下一.aspx页有关系吗?是的,您不能使用响应重定向。有一个特定的asp.net操作将启动一个跨页面帖子。太棒了!将“我的按钮”的PostBackUrl更改为新页面,您的代码工作正常。谢谢我遇到的问题是,当我检查null时,它抛出一个null引用异常。我很困惑为什么,因为我执行了空值检查受保护的无效页面加载(对象发送方,事件参数e){Label CheckCrossPage=(Label)LoginView1.FindControl(“CheckCrossPage”);if(HttpContext.Current.Request.urlreferer.AbsolutePath==null){Response.Redirect(“ViewSchedules.aspx”);}if(HttpContext.Current.Request.urlReferer.AbsolutePath!=null){CheckCrossPage.Text=“CrossPage post.”;}`@titaniumshovel将其更改为检查HttpContext.Current.Request.UrlReferer==Null谢谢,这和其他海报的代码一样有效!抱歉,我已经批准了他的代码,但对所有读者来说,这也有效。@titaniumshovel这就是最重要的!有很多方法可以剥猫皮。
if(PreviousPage != null)
{
    if(PreviousPage.IsCrossPagePostBack == true)
    {
         Label1.Text = "Cross-page post.";
    }
}
else
{
    Label1.Text = "Not a cross-page post.";
}