尝试访问我的网站时:
www.X.com
浏览器将 URL 更改为:
www.X.com/
问题是结果网址是:
www.X.com/HomePage.aspx?ReturnUrl=/
(HomePage.aspx 是默认页面)
在 IE 上:www.X.com/HomePage.aspx?ReturnUrl=%2f
由于某种原因,表单例份验证将/视为用户尝试访问的页面,然后重定向到:HomePage.aspx?ReturnUrl=/
如何设置表单例份验证(或 MVC 路由)不将/视为页面,以便在访问 www.X.com 时不会更改 url?
该网站在 Windows Server 2008 IIS7、.NET 4 上运行。
(在IIS6上运行时没有这个问题)
Web.config:
<authentication mode="Forms">
<forms name=".AUTHCOOKIE" loginUrl="HomePage.aspx" defaultUrl="Loading.aspx" timeout="9480" />
</authentication>
MVC 路由(不确定是否相关):
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
routes.IgnoreRoute("{resource}.ascx/{*pathInfo}");
routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
routes.IgnoreRoute("{resource}.gif/{*pathInfo}");
routes.MapRoute("Actions", "A/{controller}/{action}", new { controller = "Tasks", action = "InitPage" });
}
谢谢
拉斐尔
最佳答案
第一步: 您可以按如下方式设置Web配置文件:
<authentication mode="Forms">
<forms name=".AUTHCOOKIE" loginUrl="/" defaultUrl="Loading.aspx" timeout="9480" />
</authentication>
第 2 步: 将您的网络服务器(IIS)的默认文档设置为“Loading.aspx”
关于.net - IIS 7(和 MVC)中的表单例份验证 : Why ReturnUrl=/is added?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3100865/