2012-02-24 57 views
1

这里的情况有点奇怪。我有两页downloads.aspxlogin.aspxASP.NET WEb Forms应用程序在登录重定向后没有进入Page_Load

如果用户想要下载的私人文件■downloads.aspx他/她需要寄存器登录

登录链接,从downloads.aspx,如下:

<a href="login.aspx?ref=~/downloads.aspx"> 

如果我运行登录正确执行和重定向到download.aspx的页面。由于我想调试login.aspx页面中的某些行为,我在Page_Load事件处理程序中放置了一些手表,但是它永远不会去那里!其他方法Login()同样适用于login.aspx后面的代码。

所以我想,因为它执行重定向,它应该再次在Page_Load事件处理程序downloads.aspx但也有同样的问题!在运行时,一切都很完美,但在调试模式下,当从login.aspx重定向时,它不会输入downloads.aspx !!!这让我感到困扰,因为在重定向之后我想再次执行一些计算,然后再次显示下载页面。

我也尝试在重定向之前设置Response.Cache.SetCacheability(HttpCacheability.NoCache),但没有运气!任何人都知道可能是什么原因?

+0

还要确保OutputCache指令未设置为在任何.aspx文件中的服务器上缓存。除此之外,这应该工作得很好。你也确定你在调试模式下运行?在web.config中调试设置为true?如果你在登录页面中放置了一个断点,它会被打到吗?不要试图侮辱你的智慧,但有时我们都有脑屁。 – swannee 2012-02-24 15:13:10

+0

@swannee,你怎么敢侮辱我的智力? :-)只是在开玩笑,SO是一个人们寻求帮助的论坛,所以任何建议都被视为好礼物。编译调试设置为true。但是我目前在Visual Studio中运行它,因此我可以在哪里设置OutputCache指令?谢谢 – CiccioMiami 2012-02-24 15:30:16

+0

如果OutputCache指令已设置,它将位于页面指令的aspx文件的顶部。如何发布一些代码?如果它按预期工作,我确信事件连线正确。这只是调试的一部分。你是否能够打开任何面包点或是在重定向后出现问题? – swannee 2012-02-24 15:48:47

回答

0

试试这个

 // clear the users cache so that they'll get current data. 
     Response.Buffer = true; 
     Response.ExpiresAbsolute = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0)); 
     Response.Expires = 0; 
     Response.CacheControl = "no-cache"; 
     Response.Redirect(ResolveUrl("login.aspx?ref=~/downloads.aspx")); 
0

我有一个类似的问题,这是由于多个IIS应用程序。重定向导致url被更改为足以执行被第二个应用程序处理。解决方案是从IIS中删除第二个应用程序。

您可以在Global.asax方法中设置断点,以便在加载页面之前检查请求,例如的Application_BeginRequest()。有关这些事件的信息,请参阅here