Pourquoi ma page de connexion de membre asp.net fonctionne pas avec une redirection?
-
22-08-2019 - |
Question
J'ai cette configuration du site d'adhésion sur ma machine locale en utilisant le fournisseur d'appartenances ASP.NET. Quand je vais à:
Il me redirige vers
http: //localhost/Login.aspx ReturnUrl =% 2fadmin% 2fDefault .aspx
Ce qui est bien. Mais après que je mets dans mes informations de connexion, la page semble juste pour se rafraîchir. Il ne me connecte pas réellement, et il semble tout comme il actualise la page. Si je change l'URL:
Il fonctionne très bien. Il me connecte pas de problème, et me redirige vers ma page par défaut. J'ai aussi vérifié le site en direct et il fait la même chose. Des idées? Merci d'avance!
EDIT: Voici le balisage:
<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>
Configuration 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>
La solution
Pouvez-vous nous montrer un code? Si vous utilisez la méthode de FormsAuthentication.RedirectFromLoginPage
, vous devriez obtenir ce que vous voulez. Utilisez-vous à la place FormsAuthentication.SetAuthCookie
?
Mise à jour
Changement path="/Admin"
dans web.config
à path=/
La raison pour laquelle il ne fonctionne est que votre cookie d'authentification n'est uniquement définie dans le chemin de /Admin
et votre navigateur traite les URL comme sensibles à la casse afin de ne pas envoyer le cookie d'authentification Retour à la page /admin/Default.aspx
(de admin
minuscules).