我使用ASP.NET成员资格提供程序在本地计算机上设置了此成员资格网站。当我去:
它将我重定向到
http://localhost/Login.aspx?ReturnUrl=%2fadmin%2fDefault.aspx
哪个好。但在我输入我的登录信息后,该页面似乎正在刷新。它实际上并没有让我登录,它只是看起来像刷新页面。如果我将URL更改为:
工作正常。它记录我没问题,并将我重定向到我的默认页面。我也检查了现场网站,它做了同样的事情。有任何想法吗?提前谢谢!
编辑:这是标记:
<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>
答案 0 :(得分:4)
你能告诉我们一些代码吗?如果您使用FormsAuthentication.RedirectFromLoginPage
方法,您应该得到您想要的。您使用的是FormsAuthentication.SetAuthCookie
吗?
将path="/Admin"
中的web.config
更改为path=/
它不起作用的原因是您的身份验证Cookie仅在/Admin
路径中设置,并且您的浏览器将URL视为区分大小写,因此它不会将身份验证Cookie发送回/admin/Default.aspx
page(小写admin
)。