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

Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014
- - Dernière réponse : cs_ov3rdoze
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014
- 18 avril 2007 à 08:52
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
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
1648
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
2
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Nurgle
Messages postés
1648
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
2
0
Merci
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
Commenter la réponse de cs_Nurgle
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014
0
Merci
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
Commenter la réponse de cs_ov3rdoze
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014
0
Merci
Nickel ça marche

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

Merci beaucoup
Commenter la réponse de cs_ov3rdoze
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014
0
Merci
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.
Commenter la réponse de cs_ov3rdoze
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010
0
Merci
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
Commenter la réponse de cs_Myke
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014
0
Merci
Ben en fait c'est ce que j'essaye de faire mais j'y arrive pas...
Commenter la réponse de cs_ov3rdoze