Perché la mia pagina di appartenenza login asp.net non funziona con un reindirizzamento?
-
22-08-2019 - |
Domanda
Ho questa messa a punto sito di appartenenza sulla mia macchina locale utilizzando il provider di appartenenza ASP.NET. Quando vado a:
Mi reindirizza a
http:? //Localhost/Login.aspx ReturnUrl =% 2fadmin% 2fDefault aspx
Che va bene. Ma dopo che ho messo nel mio informazioni di login, la pagina sembra solo per rinfrescare. In realtà non mi login, e sembra proprio come si aggiorna la pagina. Se cambio l'URL:
Funziona bene. Mi registra in nessun problema, e mi reindirizza alla mia pagina di default. Inoltre ho controllato il sito dal vivo e lo fa la stessa cosa. Qualche idea? Grazie in anticipo!
EDIT: Ecco il markup:
<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>
configurazione 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>
Soluzione
Può noi qualche codice mostrare? Se si utilizza il metodo FormsAuthentication.RedirectFromLoginPage
, si dovrebbe ottenere quello che vuoi. Si sta utilizzando FormsAuthentication.SetAuthCookie
invece?
Aggiornamento
Cambia path="/Admin"
in web.config
a path=/
Il motivo per cui non funziona è che il cookie di autenticazione è impostato solo nel percorso /Admin
e il browser tratta gli URL come maiuscole e minuscole in modo da non inviare il cookie di autenticazione tornare alla pagina /admin/Default.aspx
(admin
minuscolo).