none
Authentification avec le compte utilisateur ou l'adresse email RRS feed

  • Question

  • J'utilise Asp.net et VB.net une base de données SQL avec les tables AspNet.... vs2017 Microsoft.AspNet.Identity et Microsoft.AspNet.Identity.EntityFramework.

    Mon problème : J'ai besoin que mes utilisateurs puisse s'authentifier avec leur comptes utilisateurs ou leurs comptes email.

    Ca fait de jour que je bataille avec cette partie de la page Login.aspx 

       Protected Sub LogIn(sender As Object, e As EventArgs)
            If IsValid Then
                ' Valider le mot de passe de l’utilisateur
                Dim manager = New UserManager()
                'manager.UserValidator = New UserValidator < AspNetUser > (manager) {AllowOnlyAlphanumericUserNames = False, RequireUniqueEmail = True}
                Dim user As ApplicationUser = manager.Find(UserName.Text, Password.Text)
                If user IsNot Nothing Then
                    IdentityHelper.SignIn(manager, user, RememberMe.Checked)
                    IdentityHelper.RedirectToReturnUrl(Request.QueryString("ReturnUrl"), Response)
                Else
                    FailureText.Text = "Nom d'utilisateur ou mot de passe incorrect."
                    ErrorMessage.Visible = True
                End If
            End If
        End Sub

    j'ai fait pas mal de recherche, mais ça ne fonctionne pas. il faut dire que Je suis passé de la version 2012 ou c'était relativement facile à la version 2017 que j'ai du mal a comprendre la nouvelle philosophie. 

    Merci de votre aide.


    Daniel

    jeudi 23 mars 2017 16:19

Réponses

  • J'ai fait ça et cela fonctionne, maintenant je vais affiner

        Protected Sub LogIn(sender As Object, e As EventArgs)
            If IsValid Then
                If UserName.Text.Contains("@") Then
                    Dim manager = New UserManager()
                    Dim email As ApplicationUser = manager.FindByEmail(UserName.Text)
                    Dim user As ApplicationUser = manager.Find(email.UserName, Password.Text)
                    If user IsNot Nothing Then
                        IdentityHelper.SignIn(manager, user, RememberMe.Checked)
                        IdentityHelper.RedirectToReturnUrl(Request.QueryString("ReturnUrl"), Response)
                    Else
                        FailureText.Text = "Nom d'utilisateur ou mot de passe incorrect."
                        ErrorMessage.Visible = True
                    End If
                Else
                    Dim manager = New UserManager()
                    Dim user As ApplicationUser = manager.Find(UserName.Text, Password.Text)
                    If user IsNot Nothing Then
                        IdentityHelper.SignIn(manager, user, RememberMe.Checked)
                        IdentityHelper.RedirectToReturnUrl(Request.QueryString("ReturnUrl"), Response)
                    Else
                        FailureText.Text = "Nom d'utilisateur ou mot de passe incorrect."
                        ErrorMessage.Visible = True
                    End If
                End If
            End If
        End Sub


    Daniel

    • Marqué comme réponse Daniel Amaury vendredi 24 mars 2017 13:10
    vendredi 24 mars 2017 13:09