1

我希望有人可以阐明如何解决我遇到的 ReturnUrl 问题。我有一个在默认网站下运行的 ASP.NET MVC 4 Web 应用程序,一切看起来都很好...... ReturnUrl 指向基本控制器上的搜索操作:

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

如果我将此应用程序移到另一台机器上并将其部署在虚拟目录中,我会得到一个不同的 ReturnUrl:

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

现在“虚拟目录”显示在 ReturnUrl 中,当然它没有正确路由。

在我的 web.config 中,我配置了以下内容:

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

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

4

1 回答 1

1

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

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

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

于 2014-01-13T16:04:22.653 回答