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

Silverlight Discussion :

comment cacher "Keep me signed in" dans une business application ?


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut comment cacher "Keep me signed in" dans une business application ?
    Bonjour,

    J'utilise les login standards de la business application.

    Comme le tritre l'indique, je voudrais cacher "Keep me signed in" dans le formulaire d'enregistrement.

    Même avec Blend je n'arrive pas à accéder à cet élément...

    Je trouve dans le LoginForm.xaml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <local:CustomDataForm x:Name="loginForm"
                                          Padding="10,0,10,0"
                                          CurrentItem="{Binding}"
                                          IsEnabled="{Binding IsLoggingIn, Converter={StaticResource NotOperatorValueConverter}}"
                                          AutoEdit="True" CommandButtonsVisibility="None" HeaderVisibility="Collapsed" 
                                          AutoGeneratingField="LoginForm_AutoGeneratingField" 
                                          Style="{StaticResource LoginDataFormStyle}" />
    qui affiche:
    User name, Password et la fameuse case à cocher "Keep me signed in"

    J'ai donc été voir dans le Style "LoginDataFormStyle" mais là pas de trace du mot "Keep".

    Toutes les idées (ou solutions) sont les bienvenues.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Le mot Keep... doit être dans une ressource, afin de faciliter la localisation de l'application ?!

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Exact, il est dans le dossier Assets / Ressources/ ApplicationStrings

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Il suffit donc d'identifier la stringkey pour cette ressource, et de la retrouver dans ton application !

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Merci,

    je trouve effectivement un "RememberMeLabel" avec comme contenu "Keep me signed in".

    Dans l'application, le seul endroit ou je trouve ce nom "RememberMeLabel" (outre sa définition), c'est dans le LoginInfo.vb:

    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
     Private _RememberMe As Boolean
     
            ''' <summary>
            ''' Gets and sets the value indicating whether the user's authentication information
            ''' should be recorded for future logins.
            ''' </summary>
            <Display(Name:="RememberMeLabel", ResourceType:=GetType(ApplicationStrings))> _
            Public Property RememberMe() As Boolean
                Get
                    Return _RememberMe
                End Get
                Set(ByVal value As Boolean)
                    If _RememberMe <> value Then
                        Me.ValidateProperty("RememberMe", value)
                        Me._RememberMe = value
                        Me.RaisePropertyChanged("RememberMe")
                    End If
                End Set
            End Property
    mais je ne sais toujours pas comment je peux rendre invisible la checkbox "Keep me signed in"..

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Il suffit de retrouver la checkbox associée à ta propriété RememberMe, non ?

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 159
    Par défaut
    Hello,

    La fenêtre de login utilise le custom control CustomDataForm définit dans CustomDataForm.cs. Ce dernier dérive de DataForm et se construit de manière "automatique" en fonction des propriétés présentes dans l'objet qu'il lui est associé dans le DataContext.

    Dans notre cas, c'est un objet de type LoginInfo qui est fourni décrit dans LoginInfo.cs (ou .vb dans ton cas).

    Du coup, si tu ne veux plus voir le "Keep me signed" (extrait du fichier de ressources comme déjà dit), tu as 2 solutions:

    Tu dégages la propriété RememberMe et tu changes cette ligne de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return new LoginParameters(this.UserName, this.Password, this.RememberMe, null);
    Par celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return new LoginParameters(this.UserName, this.Password);
    Soit plus simple, tu demandes simplement à la propriété de ne pas s'afficher dans le processus d'autogénération en changeant l'attribut de la propriété RememberMe par défaut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Display(Name = "RememberMeLabel", ResourceType = typeof(ApplicationStrings)]
    Avec celui-là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Display(Name = "RememberMeLabel", ResourceType = typeof(ApplicationStrings), AutoGenerateField = false)]
    Bye,

    David Rousset
    Microsoft France

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Merci Davrous pour ces explications très claires sur ce sujet ( qui à mes yeux l'est beaucoup moins...).

    J'ai donc appliqué ta première solution et c'est nickel .

    Pour info, j'ai donc commenté le code suivant dans LoginInfo.vb
    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
     'Private _RememberMe As Boolean
     
            ' ''' <summary>
            ' ''' Gets and sets the value indicating whether the user's authentication information
            ' ''' should be recorded for future logins.
            ' ''' </summary>
            '<Display(Name:="RememberMeLabel", ResourceType:=GetType(ApplicationStrings))> _
            'Public Property RememberMe() As Boolean
            '    Get
            '        Return _RememberMe
            '    End Get
            '    Set(ByVal value As Boolean)
            '        If _RememberMe <> value Then
            '            Me.ValidateProperty("RememberMe", value)
            '            Me._RememberMe = value
            '            Me.RaisePropertyChanged("RememberMe")
            '        End If
            '    End Set
            'End Property
    et puis remplacé selon tes instructions toujours dans LoginInfo.vb :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Public Function ToLoginParameters() As LoginParameters
                'Return New LoginParameters(Me.UserName, Me.Password, Me.RememberMe, Nothing)
                Return New LoginParameters(Me.UserName, Me.Password)
            End Function

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/09/2010, 15h38
  2. [WS 2008] Comment cacher le bouton arrêter pour les utilisateurs dans TS
    Par keks06 dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 18/08/2009, 18h53
  3. Réponses: 2
    Dernier message: 04/05/2006, 11h34
  4. Réponses: 2
    Dernier message: 07/02/2006, 20h42
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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