IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Définition du MemberShipProvider


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Définition du MemberShipProvider
    Bonjour

    J'ai mis en place une CreateUserWizard que je personalise de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" Width="360" CssClass="INS_Gene">
    	<CreateUserButtonStyle CssClass="INS_BoutonContinue" />
    	<WizardSteps>
    	<asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
    	<ContentTemplate>
    	<asp:Table ID="tblCUW" runat="server" CssClass="INS_Tbl">
    	<asp:TableRow ID="rowTitle">
    	<asp:TableCell ColumnSpan="3" ID="celTitle" CssClass="INS_Title">
    	<asp:Label ID="lblCUWTitle" runat="server" Text="biduel"></asp:Label>
    	</asp:TableCell>
    	</asp:TableRow>
    	<asp:TableRow ID="rowUserName">
    	<asp:TableCell ID="celLBLUserName" CssClass="INS_celLabel">
    	<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName"></asp:Label>
    	</asp:TableCell>
    	<asp:TableCell ID="celTXTUserName" CssClass="INS_celSaisie">
    	<asp:TextBox ID="UserName" runat="server" CssClass="INS_TextBox"></asp:TextBox>
    	</asp:TableCell>
    	<asp:TableCell ID="celERRUserName" CssClass="INS_celMsgErr">
    	<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>
    	</asp:TableCell>
    	</asp:TableRow>
    	</asp:Table>
    	</ContentTemplate>
    	</asp:CreateUserWizardStep>
    	<asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
    	<ContentTemplate>
    	<asp:Table ID="tblCUWFin" runat="server" CssClass="INS_Tbl">
    	<asp:TableRow ID="rowTitleFin">
    	<asp:TableCell ID="celTitleFin" CssClass="INS_Title">
    	<asp:Label ID="lblCUWTitleFin" runat="server"></asp:Label>
    	</asp:TableCell>
    	</asp:TableRow>
    	<asp:TableRow  ID="rowTecteFin">
    	<asp:TableCell ID="celTexteFin" CssClass="INS_celLabel">
    	<asp:Label ID="lblTexteFin" runat="server"></asp:Label>
    	</asp:TableCell>
    	</asp:TableRow>
    	</asp:Table>
    	</ContentTemplate>
    	</asp:CompleteWizardStep>
    	</WizardSteps>
    </asp:CreateUserWizard>
    J'ai pas mis tout me champs pour pas surcharger le topic.

    Ensuite, je vais dans le CodeBehind pour enrichir les labels et les messages d'erreur avec des données qui viennent de ma base avec ce genre de méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    tbl = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("tblCUW")
    tblFin = CreateUserWizard1.CompleteStep.ContentTemplateContainer.FindControl("tblCUWFin")
    Dim lblTitle As Label = tbl.FindControl("rowTitle").FindControl("celTitle").FindControl("lblCUWTitle")
    lblTitle.Text = dt.Rows(0).Item("TitleStep")
    Tout cela dans le Page_Init et pour tous mes champs.

    Puis arrive le problème. Dés que je défini le MemberShipProvider selon ce genre de ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CreateUserWizard1.MembershipProvider = "MPSSQAPASSMD5"
    Je n'ai plus aucun label qui s'affiche. La seule chose qui s'afiche est le texte du bouton de validation du formulaire. Ce fonctionnement me parait bizarre, mais surtout je ne comprends pas la logique qui se trouver dérrière.

    Mon idée est de pouvoir utiliser un Provider selon une donnée dans la base. Vu que j'ai plusieurs sites sur la même plate forme, certains pourornt utiliser le MD5 ou ne pas demander de Question/Réponse de sécurité ou autre. Donc j'ai défini plusieurs Provider dans mon Web.Config.

    Pouvez vous m'aider ?

  2. #2
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Dans le même temps l'autre topic qui parle de ce genre de chose, j'ai trouvé aussi la solution. En fait c'est même celle là qui m'a donné l'autre.

    En fait, je me suis apreçu que l'orsqu'on définit un MemberShipprovider pour le CreateUserWizard on "efface" ce qui est fait dans le ContentTemplate, enfin, ça n'en tiens plus compte.

    Du coup il faut mettre des truc dans le ContentTemplate côté HTML, sinon il grogne. Ensuite il faut définir le MemberShipProvider en CodeBehind puis vider le ContentTemplate et le reconstruire.

    Donc, partant du morceau de code HTML que j'ai placé, voici un embryon de CodeBehind qui permet de faire la rue michel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CreateUserWizard1.MembershipProvider = "MonProvider"
    tbl = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("tblCUW")
    tbl.Rows.Clear()
    Et ensuite il faut refabriquer tout le ContentTemplate dans la table "tblCUW" avec des contrôles, bien respecter les minima obligatoire (UserName, Password, ...) bien ajouter les Id sur les TextBox et pouf, le tour est joué.

    Bon, ça n'a pas été simple à capter, mais j'ai encore démontré la supériorité de l'homme sur la machine, mon ego déjà bien large vient de prendre quelques centimètre, mes collègues pleurent de m'entendre jacasser comme une pie, mais il fait beau, c'est Printemps et c'est cool.
    Manque plus qu'un jolie fille dans ma vie et ça sera le bonheur....
    Euh, je m'égare.

    Allez, bon vent, à la revoyure.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 21
    Dernier message: 09/08/2007, 11h46
  2. Réponses: 2
    Dernier message: 29/07/2003, 12h52
  3. [Sybase] Définition des symboles
    Par SoaB dans le forum Sybase
    Réponses: 5
    Dernier message: 19/03/2003, 23h06
  4. Définition de "Métalangage"
    Par No dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 19/07/2002, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo