Bonjour à tous.
Je pense que mon souci vient du fait de l'UpdatePanel que je n'arrive pas à bien gérer. Mais là, je sèche un peu.
Alors présentons le truc simplement : j'ai mis un contrôle Login dans un UpdatePanel de la manière suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<ajax:UpdatePanel ID="upSing" runat="server" ChildrenAsTriggers="true" UpdateMode="Always" RenderMode="Inline">
<Triggers>
<ajax:AsyncPostBackTrigger ControlID="lbSign" EventName="Click" />
</Triggers>
<ContentTemplate>
<div id="divFondSign" runat="server" style="display:none;" class="FondOpaque">
<div id="divDevantSign" class="DivSignIn">
<asp:LinkButton ID="lbCloseLogin" runat="server" Text="Close"></asp:LinkButton>
<asp:Login ID="log" runat="server"
MembershipProvider="MemberShipHashed"
VisibleWhenLoggedIn="false"
>
</asp:Login>
</div>
</div>
</ContentTemplate>
</ajax:UpdatePanel> |
A l'inscription les utilisateurs sont flaggués sur Approved = False.
Donc cela déclenche une erreur lors de la tentative de connexion.
Pour capter cette erreur, habituellement, c'est lorsque je fais sans UpdatePanel, je fais ça :
1 2 3 4 5 6 7 8 9 10 11 12
|
Protected Sub log_LoggingIn(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles log.LoggingIn
Try
Dim u As MembershipUser = Membership.GetUser(log.UserName, False)
If Not u.IsApproved Then
Response.Redirect("/Navigation/Confirmation.aspx?prov=log")
End If
Catch ex As Exception
Outils.Logage(ex.Message)
End Try
End Sub |
Donc ça marche bien quand il n'y a pas d'UpdatePanel
Là, vu que je tiens à mon UpdatePanel pour des questions d'ergonomie et parce que j'ai pas le choix, je dois changer la méthode de redirection. Pour l'instant, ça boucle sur la même page, rien de plus.
Si je change le Response.Redirect par ça :
Page.ClientScript.RegisterStartupScript(Me.GetType(), "redirect", "location.href = '/Navigation/Confirmation.aspx?prov=log'", True)
Il me met le message d'erreur d'identification et ne redirige pas.
Alors je cherche pourquoi il ne veut pas me rediriger, mais je trouve pas.
Avez-vous une idée ?
Partager