当应用程序作为网站下的虚拟目录托管时,ASP.NET MVC ReturnUrl混淆
本文关键字:ASP NET 混淆 ReturnUrl MVC 应用程序 网站 虚拟 | 更新日期: 2023-09-27 17:59:11
我希望有人能告诉我如何解决我遇到的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>
如有任何帮助或建议,我们将不胜感激。
这取决于重定向的方式。如果你像这样重定向,它应该可以工作:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
//... omitted some preliminary validation ...
return Redirect(returnUrl);
}
我们正在使用此设置,它适用于虚拟目录。