.net - IIS 7(和 MVC)中的表单例份验证 : Why ReturnUrl=/is added?

标签 .net asp.net-mvc authentication iis-7 forms-authentication

尝试访问我的网站时:

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/

相关文章:

c# - HttpWebRequest + Windows Auth - NetworkCredential 不起作用

.net - 如何在不调用 ResourceManager.GetString() 并捕获异常的情况下确定 ResourceManager 是否包含键?

asp.net-mvc - Spark View 引擎和 Visual Studio

python - Bokeh 服务器的简单用户名和密码保护

mysql - 防火墙后面的.NET SQL 查询身份验证

php - 用户名和电子邮件一起登录 laravel 5.3

c# - 字符串类型的引用对象比较

c# - 从 XElement 读取文本内容

html - 在 MVC 中从 html 表单获取上传的文件?

asp.net-mvc - ASP.NET MVC 是否允许私有(private) ViewModel 构造函数?