回答
如果使用Server.Transfer重定向到新页面,则可以在Context集合中传递一个变量并在新页面中检查该变量。
Context.Items.Add("somevar","someval");
第2页
if (Context.Items["somevar"] == null)
{
// the page is not redirected from Page 1
}
页面beeing重定向customErrors – ronik 2010-03-11 13:50:46
你可以在web.config中添加redirectMode="ResponseRewrite"
到customErrors
标签。这使得错误重定向像Server.Transfer
而不是Response.Redirect
。所以,如果他们是在SomePage.aspx页面并发生错误,而不是URL更改为MyErrorPage.aspx将继续担任SomePage.aspx页面,但会呈现来自MyErrorPage.aspx的HTML。在您的代码后面,您可以检查Request.Path
,如果它是MyErrorPage.aspx这意味着某人正试图直接访问错误页面。在这种情况下,您可以执行Response.End
或其他任何您可能想要在此处执行的操作,以防止直接访问此页面。
这听起来不错,我会尝试它 – ronik 2010-03-11 14:39:56
插入流入WebConfig
<system.web>
<httpHandlers>
<remove verb="*" path="*.aspx" />
<add path="*.aspx" verb="*" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add name="BlockViewHandler" path="*.aspx" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
是使用'Server.Transfer'或'Response.Redirect'重定向? – rahul 2010-03-11 13:34:44