J'utilise l'authentification par formulaire sur mon site Web VS-2005.ASP.NET - FormsAuthentication - impossible de rediriger après la connexion
En cas de fausses informations d'identification ou en demandant explicitement des pages protégées, le site Web peut rediriger l'utilisateur vers la page de connexion. Toutefois, lorsque les informations d'identification correctes sont fournies, l'application ne peut pas rediriger l'utilisateur vers la page souhaitée. Pendant le débogage, j'ai trouvé que 'Request.IsAuthenticated = False' juste avant de rediriger l'utilisateur vers la page voulue. Pendant le codage, j'ai pensé que cette propriété sera automatiquement définie après que j'ai généré le ticket d'authentification. Alors dois-je le définir explicitement dans le bouton Soumettre, cliquez sur la page de connexion après validation?
BTW Je n'ai pas utilisé les méthodes 'GetAuthcookie', 'SetAuthCookie' ou 'RedirectFromLoginPage'. Je poste le code à l'intérieur du bouton Soumettre, cliquez sur la page de connexion ainsi que sur les étiquettes Authentification et Autorisation dans le fichier web.config.
<authentication mode="Forms">
<forms name=".ASPXFORMSDEMO" loginUrl="~/Login.aspx" cookieless="UseCookies" path="~/"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
Protected Sub btnsubmit_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnsubmit.Click
'here first validate if the user is valid user
ad = New Aranya_Data
Dim code As Integer = ad.validateuser(txtuserid.Text, txtpwd.Text)
'need to implement forms authentication here
If code = 0 Then
'creating the authentication ticket
Dim tkt As FormsAuthenticationTicket
Dim cookiestr As String = ""
Dim ck As HttpCookie
tkt = New FormsAuthenticationTicket(1, txtuserid.Text, DateTime.Now, DateTime.Now.AddMinutes(30), chkRemember.Checked, "14062010")
cookiestr = FormsAuthentication.Encrypt(tkt)
ck = New HttpCookie(FormsAuthentication.FormsCookieName, cookiestr)
If chkRemember.Checked Then
ck.Expires = tkt.Expiration
End If
ck.Path = FormsAuthentication.FormsCookiePath
Response.Cookies.Add(ck)
Dim strRedirect As String = ""
strRedirect = Request("ReturnUrl")
If strRedirect Is Nothing Then
strRedirect = "~/Second.aspx"
End If
Response.Redirect(strRedirect & "?usr=" & tkt.Name, True)
Else
MsgBox("Invalid Login credentials! Please try again.", MsgBoxStyle.OkOnly, "Please Note")
End If
End Sub
S'il vous plaît laissez-moi savoir si vous voulez que je poste plus de code ou d'information.