Création d'un provider en VB (Problème dans Web.config)

[Résolu]
Signaler
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014
-
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014
-
Bonjour

Après avoir consulté un article très bien fait (Merci yanis7518) j'ai enfin réussi à faire un provider qui marche... Enfin je croyais

Je cherche en fait à identifier des utilisateurs via une base de données (http://www.aspfr.com/infomsg_AUTHENTIFIER-UTILISATEURS-DANS-APPLICATION_922738.aspx#5). J'ai redéfinis la méthode ValidateUser(...) de MembershipProvider :

Public

MustInherit
Class myProvider

        Inherits MembershipProvider

        Public
Sub
New()

        End
Sub

        Public
Overrides
Function ValidateUser(
ByVal username
As
String,
ByVal password
As
String)
As
Boolean
                Try
                        Dim request
As
String =
"SELECT * FROM user WHERE (login='" + username.ToString.Trim() +
"' AND password='" + password.ToString.Trim() +
"')"
                        Dim osqlconn
As SqlConnection =
New SqlConnection(
"lisadocConnectionString")

                        Dim osqlcom
As SqlCommand =
New SqlCommand(request, osqlconn)
                        osqlconn.Open()

                        Dim result
As
Object = osqlcom.ExecuteScalar()

                        If (
Not result
Is
Nothing)
Then
                                Return
True
                        Else :
Return
False
                        End
If
                Catch ex
As Exception

                        Return
False
                End
Try
        End
Function
End
Class

Et j'ai mis dans le fichier web.config :

<

membershipdefaultProvider="
LisaDoc"
>
        <providers>
                <addname="
LisaDoc"

                        type="
myProvider"

                        connectionStringName="
lisadocConnectionString"

                        enablePasswordRetrieval="
false"

                        enablePasswordReset="
false"

                        requiresQuestionAndAnswer="
false"

                        passwordFormat="
Hashed"

                        HashAlgorithmType="
MD5"

                        applicationName="
/"
/>
        </providers>
</membership>

<authenticationmode="
Forms"
>
        <formsloginUrl="
login.aspx"
protection="
All"
timeout="
3600"
/>
</authentication>
<authorization>
        <denyusers="
?"
/>
</authorization>Ensuite, quand un utilisateur veux se connecter :

Protected
Sub Connexion_Authenticate(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.WebControls.AuthenticateEventArgs)
Handles Connexion.Authenticate

        If (Membership.ValidateUser(Connexion.UserName, Connexion.Password))
Then
                FormsAuthentication.RedirectFromLoginPage(Connexion.UserName, Connexion.RememberMeSet)

        Else
                Message.Text =
"Login ou mot de passe incorrect."
        End
If
End
Sub

Et là j'ai l'erreur suivante ConfigurationErrorsException : Impossible de créer une classe abstraite. et les points d'arret dans ValidateUser ne sont pas atteints. Je pense que le provider n'est pas généré (il vaut "" dans la liste des valeurs) mais je ne comprend pas pourquoi...

Merci d'avance

7 réponses

Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Non, il faut tout redéfinir !
Tu dois absolument implémenter les Propriétés, elle donnent la configuration de ton Provider (c'est des propriétés de base genre "longueur du mot de passe", etc...), pour le reste, tu peux laisser vide, ou lancer par exemple une NotImplementedException() dans les fonctions que tu ne veux pas implémenter, etc..

A++

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Salut,

C'est normal, tu as déclaré ta classe MustInherit ! Il ne faut pas, ce mot clé empêche la classe d'être utilisée telle quelle et l'oblige à être héritée...
Donc il suffit de l'enlever et normalement c'est bon .

A++,
Bonne journée

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Merci pour ta réponse

En fait je l'ai mis parceque sinon ya une erreur parceque j'ai pas redéfini l'ensemble des méthodes de MembershipProvider.
Est-ce qu'il y aurait un moyen de l'enlever sans être obligé de tout redéfinir?

Bonne journée
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Nickel ça marche

Ca faisait 2 jours que j'étais dessus!!!

Merci beaucoup
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Par contre j'ai un petit soucis je sais pas si ça a un rapport :


J'identifie les utilisateurs ça pas de problèmes. Mais l'application est au ralenti : les images chargent plus etc.
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

Est-ce qu'il existe une source qui en plus d'authentifier les utilisateur. Prends en charge la page qu'ils peuvent accèder.

Myke
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Ben en fait c'est ce que j'essaye de faire mais j'y arrive pas...