2013-02-14 60 views
0

我希望有人能够解释一下如何解决我遇到的ReturnUrl问题。我有我的默认网站下运行的ASP.NET MVC 4 Web应用程序,一切看起来罚款...的RETURNURL指向一个基本控制器上的搜索行动:当应用程序作为虚拟目录托管在一个站点下时,ASP.NET MVC ReturnUrl混淆了

http://localhost/Login/Index?ReturnUrl=%2fBasic%2fSearch 

如果我提出这个申请到另一台机器,并在虚拟目录部署它,我得到一个不同的RETURNURL:

http://localhost2/virtualdirectory/Login/Index?ReturnUrl=%2fvirtualdirectory%2fBasic%2fSearch 

现在的“virtualdirectory”在RETURNURL正显示出,当然它正确不路由。

在我的web.config,我已经配置如下:

<authentication mode="Forms"> 
    <forms loginUrl="~/Login/Index" timeout="2880" /> 
</authentication> 

任何帮助或建议,将不胜感激。

+0

所以基本上当它重定向它重定向到:http:// localhost2/virtualdirectory/BasicSearch看起来应该工作?登录后什么是重定向网址? – Victor 2013-02-14 02:45:38

+0

@Victor网址是:localhost2/virtualdirectory/virtualdirectory/Basic/Search我们正在努力获取localhost2/virtualdirectory /基本/搜索 – 2013-02-14 14:33:13

+0

@ RichardO'Neil您是否曾经找到过解决方案? – Rob 2013-07-08 04:39:42

回答

0

这取决于你如何做重定向。如果你像这样重定向,它应该可以工作:

[HttpPost] 
public ActionResult LogOn(LogOnModel model, string returnUrl) 
{ 
    //... omitted some preliminary validation ... 
    return Redirect(returnUrl); 
} 

我们正在使用这种设置,它适用于虚拟目录。

相关问题