2012-03-07 207 views
0

我有一个ASP项目,其中一个模块是一个单独的MVC项目。这个模块(它是独立托管的)我通过使用IFrame显示。问题是,如果会话从MVC项目过期,我需要将页面重定向到ASP项目的登录页面。重定向到IFrame的登录页面

在我的MVC项目,我有这样的功能:

public ActionResult Login(string reason) 
    { 
     switch (reason) 
     { 
      case BUMP_AUTHENTICATION_REQUIRED: 
       Response.AddHeader("X-Shell-Redirect", "AccessDenied"); 
       ViewData["LoginMessage"] = ""; 
       break; 

      case BUMP_SESSION_TIMEOUT: 
       Response.AddHeader("X-Shell-Redirect", "SessionTimeOut"); 
       ViewData["LoginMessage"] = Strings.LoginSessionTimeoutMessage; 
       break; 

      default: 
       ViewData["LoginMessage"] = String.Empty; 
       break; 
     } 

     return View(); //Which return the login view of the MVC Project 
    } 

如何实现这一目标?

+2

您可以使用javascript重定向http://ntt.cc/2008/01/21/5-ways-to-redirect-url-with-javascript.html – 2012-03-08 06:00:20

回答

0

这里的问题是如何在iFrame页面和父页面之间传递消息。无法访问父页面的任何方法或属性(它将显示拒绝访问错误,因为它们都位于不同的域中)。我使用“onMessage”事件得到了解决方案。您可以从this页面获得更多详细信息