asp.net登录控件相对url问题

asp.net登录控件相对url问题,asp.net,iis,iis-6,virtual-directory,Asp.net,Iis,Iis 6,Virtual Directory,登录CreateUserUrl=“~/user/page.aspx”转到x.com/user/page.aspx,而不是x.com/dir/user/page.aspx 因此,我的asp:login标记有以下格式: <asp:Login ID="loginMain" runat="server" OnAuthenticate="OnAuthenticate" CreateUserText="Request Account" Crea

登录CreateUserUrl=“~/user/page.aspx”转到x.com/user/page.aspx,而不是x.com/dir/user/page.aspx

因此,我的asp:login标记有以下格式:

    <asp:Login ID="loginMain" runat="server" OnAuthenticate="OnAuthenticate" 
            CreateUserText="Request Account"
            CreateUserUrl="/user/RequestAccount.aspx"
            PasswordRecoveryText = "Forgot Password"
            PasswordRecoveryUrl = "/user/ForgotPassword.aspx"
            UserNameLabelText="Username:"/>

这在我的本地主机IIS7中起作用。但在我的服务器IIS6上,该站点位于一个特定的目录中(它不是文件夹,只是IIS中的一个设置),如下所示:domain.com/virtualdir/login.aspx

所以当我在那个页面时,我点击RequestAccount,它进入domain.com/user/RequestAccount.aspx,它给出404

我想让它转到domain.com/virtualdir/user/RequestAccount.aspx

为什么IIS错误地创建链接而没有注意到我在/virtualdir/

我该如何解决这个问题

编辑:
似乎我完全忘记了我有一个Login.skin文件,它正在手动添加链接,无法更改。让我做一些测试。

我决定停止使用“asp:login”,只构建自己的自定义登录表单。已解决。

您的代码似乎没有使用相对路径。使用~应解析应用程序的相对路径。i、 e:CreateUserUrl=“~/user/RequestAccount.aspx”这不是问题所在。当我在上面的代码中使用~时,它仍然显示domain.com/user/RequestAccount.aspx,而不是domain.com/virtualdir/user/RequestAccount。那辆蒂尔达车坏了。IIS一定有问题。您的“virtualdir”只是文件夹还是在IIS中实际配置为应用程序?在IIS中配置为应用程序。这不是一个真正的文件夹。我有多个网站在同一台服务器上运行,所以这是必要的。很抱歉,我不确定是什么原因造成的,因为你是对的。只是为了确保requestAccount.aspx具有匿名访问权限,并且代码中没有发生任何重定向。