为什么我的asp.net会员登录页面无法使用重定向?

时间:2009-05-19 16:35:26

标签: asp.net redirect asp.net-membership membership-provider returnurl

我使用ASP.NET成员资格提供程序在本地计算机上设置了此成员资格网站。当我去:

http://localhost/admin/

它将我重定向到

http://localhost/Login.aspx?ReturnUrl=%2fadmin%2fDefault.aspx

哪个好。但在我输入我的登录信息后,该页面似乎正在刷新。它实际上并没有让我登录,它只是看起来像刷新页面。如果我将URL更改为:

http://localhost/Login.aspx

工作正常。它记录我没问题,并将我重定向到我的默认页面。我也检查了现场网站,它做了同样的事情。有任何想法吗?提前谢谢!

编辑:这是标记:

<asp:Login ID="Login1" runat="server" CssClass="LoginBox" TitleText="Please Log In">
    <LayoutTemplate>
        <h2>
            Please Log In:</h2>
        <p runat="server" id="FailureText" visible="false">
            Either your email address or password was incorrect. Please try again.</p>
        <strong>Email</strong><br />
        <asp:TextBox ID="UserName" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
            Text="*"></asp:RequiredFieldValidator>
        </p>
        <p>
            <strong>Password</strong><br />
            <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>
            <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
                Text="*"></asp:RequiredFieldValidator>
        </p>
        <p>
            <asp:Button ID="Login" CommandName="Login" runat="server" Text="Log In" /></p>
        <p>
            Please <a runat="server" id="Link_ContactUs">contact </a>an administrator if you
            are having trouble logging in or have forgotten your password.</p>
    </LayoutTemplate>
</asp:Login>

web.config设置:

<authentication mode="Forms">
  <forms loginUrl="/Login.aspx"
         protection="All"
         timeout="60"
         name="AppNameCookie"
         path="/Admin"
         requireSSL="false"
         slidingExpiration="true"
         defaultUrl="/Admin/Default.aspx"
         cookieless="UseCookies"
         enableCrossAppRedirects="false" />
</authentication>

1 个答案:

答案 0 :(得分:4)

你能告诉我们一些代码吗?如果您使用FormsAuthentication.RedirectFromLoginPage方法,您应该得到您想要的。您使用的是FormsAuthentication.SetAuthCookie吗?

更新

path="/Admin"中的web.config更改为path=/

它不起作用的原因是您的身份验证Cookie仅在/Admin路径中设置,并且您的浏览器将URL视为区分大小写,因此它不会将身份验证Cookie发送回/admin/Default.aspx page(小写admin)。