none
détecter utilisateur courant pour winwform RRS feed

  • Question

  • Bonjour

    J'utilise le membership d'asp.net pour gérer les roles et utilisateurs dans mon application WINFORM

    Si quelqu'un a une idée comment détecter le user courant de l'application une fois conecté .par exemple j'ai besoin de ce user dans une form  bien définie.

    ci dessus un bout de code pour la chose mais en faite j obtient mon user a partir de la form login et je met le textbox en invisible  (c pas très intelligent donc je veux une facon plus méthodique)

      nom = TextBox1.Text
        Dim user As MembershipUser = Membership.GetUser(nom)
        Dim identity As New GenericIdentity(user.UserName)
        Dim principal As New RolePrincipal(identity)
        Threading.Thread.CurrentPrincipal = principal
    

    Cordialement


    Best Regards Please mark as answer if my post is helpful
    samedi 11 juin 2011 07:37

Réponses

  • ca marche maintenant

    Merci pour tout 

    j'ai utilisé ce bout de code

     

     nom = Thread.CurrentPrincipal.Identity.Name
        Dim user As MembershipUser = Membership.GetUser(nom)
        Dim identity As New GenericIdentity(user.UserName)
        Dim principal As New RolePrincipal(identity)
        Threading.Thread.CurrentPrincipal = principal
    

     


    j'ai ajouté donc la ligne 

    nom=thread.currentprincipal.identity.name

    ca récupère le nom de l'utilisateur courant (en utilisant le membership de asp.net pour les winforms)

    Cordialement

     


    Best Regards Please mark as answer if my post is helpful
    • Marqué comme réponse YosrJ lundi 13 juin 2011 11:01
    lundi 13 juin 2011 10:56

Toutes les réponses

  • Bonjour,

     

    Ce que vous recherchez c'est qui a exécuter l'application, par exemple nous nous trouvons dans une session Windows avec l'utilisateur toto, et il exécute le programme en "runAs" (avec un autre profile) c'est ça ?

    Dans ce cas il faut utiliser WMI (Win32_Process) pour récupérer le nom (login), j'avais fait un exemple dans le forum, si c'est bien ce que vous recherchez a faire je le retrouverais.

     

    A bientot


    Cordialement,
    Xavier TALOUR
    Alias Troxsa SendMail
    Voir le profil de Xavier TALOUR sur LinkedIn
    samedi 11 juin 2011 08:09
    Auteur de réponse
  • Bonjour

    Evidement je ne veux pas utiliser la session windows deja pour me conecter j'utilise ce code 

     

     Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        If Membership.ValidateUser(UsernameTextBox.Text, PasswordTextBox.Text) Then
    
          Dim usrInfo As MembershipUser = Membership.GetUser(UsernameTextBox.Text)
    
              Else
          UsernameTextBox.Text = String.Empty
          PasswordTextBox.Text = String.Empty
        End If
      End Sub
    


    j'utilise le membership de asp.net mais pour les application windows et non web

    Cordialement


    Best Regards Please mark as answer if my post is helpful
    samedi 11 juin 2011 08:28
  • Bonjour YWeb,

    Je comprend toujours pas dsl, ça ne doit pas etre une question pour moi je pense.
    Comme j'ai jamais fait de l'ASP c'est sur c'est pas évidant de comprendre, enfin ce que je comprend pas c'est pourquoi vouloir faire de l'ASP dans une WinForm ?
    La class MembershipUser n'est pas que pour l'ASP ?

    Enfin bon j'essaie toujours de comprendre :) (curiosité humaine)
    Donc vous avez un serveur WEB (IIS) ou dessus vous avez des rôles utilisateur que vous voulez récupérer (genre si l'utilisateur a un rôle administrauteur ou pas) ?

    donc d'apres ce que je comprend avec votre code c'est que vous avez un WinForm avec login et mot de passe, et si ce log fait partie de certain rôle vous afficherez ou pas un label ?
    mais pour sa il faut aller vérifier avant sur le serveur si il en fait bien partie, c'est bien ça ?

     


    Cordialement,
    Xavier TALOUR
    Alias Troxsa SendMail
    Voir le profil de Xavier TALOUR sur LinkedIn
    samedi 11 juin 2011 17:30
    Auteur de réponse
  • Je vous suggère d'étudier ceci :
    Ce besoin particulier d'utiliser une authentification du type Forms
    ASPNET dans un client riche a été pensé.
     

    Fred
    dimanche 12 juin 2011 05:30
  • Bonjour Xavier:)

    Dans ASP.NET ya une tout une base qui se génére automatiquement contenant beaucoup de table qui gère les roles et les utilisateur avec des procédure stocké toute prète.J'ai voulu bénéficier de cet avantage.

    et vous avez raison j'ai une winform avec login et mot de passe et si ce  log fait partie de certain role je désactive ou active un controle par exemple ou affiche ou cache un label.c'est bien ca

    mais pour cela faudra vérifier dans la base généré donc je me comporte avec le membership juste comme une base .j'ai trouvé des tuto qui utilise le membership pour winform (on ajoute quelque ligne dans le app.config et la base généré de asp est intégré:-)

    j'ai utilisé ce lien

    http://www.theproblemsolver.nl/usingthemembershipproviderinwinforms.htm

     


    Best Regards Please mark as answer if my post is helpful
    lundi 13 juin 2011 07:29
  • ca marche maintenant

    Merci pour tout 

    j'ai utilisé ce bout de code

     

     nom = Thread.CurrentPrincipal.Identity.Name
        Dim user As MembershipUser = Membership.GetUser(nom)
        Dim identity As New GenericIdentity(user.UserName)
        Dim principal As New RolePrincipal(identity)
        Threading.Thread.CurrentPrincipal = principal
    

     


    j'ai ajouté donc la ligne 

    nom=thread.currentprincipal.identity.name

    ca récupère le nom de l'utilisateur courant (en utilisant le membership de asp.net pour les winforms)

    Cordialement

     


    Best Regards Please mark as answer if my post is helpful
    • Marqué comme réponse YosrJ lundi 13 juin 2011 11:01
    lundi 13 juin 2011 10:56