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 :

Authentification via le login Windows


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut Authentification via le login Windows
    Bonjour à tous,
    je possède plusieurs sites qui utilise actuellement un formulaire pour s'authentifier.
    Pour ses sites, je dois supprimer le formulaire d'authentification et mettre en place une authentification par le login windows.

    Afin de ne pas tout refondre, je pensais réutiliser les procédures existantes, en récupérant le login windows de l'utilisateur. Ensuite je gère les droits des utilisateurs via le code existant.

    En local, cette récupération marche parfaitement, par contre, dés que je déploie le site sur mon serveur de test, le login récupéré est le login d'administrateur ayant déployé le site.

    J'ai essayé plusieurs technique trouvé sur le net comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WindowsIdentity.GetCurrent()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpContext.Current.User.Identity
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Request.LogonUserIdentity.Name
    J'ai bien mis le serveur iis en "integrated windows authentification"
    Et c'est toujours le login du serveur qui est récupéré.

    Comment faire pour récupérer le login du client?

    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Tu as bien ceci dans fichier Web.Config ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <system.web>
      <authentication mode="Windows"/>
    </system.web>
    Ceci te suffit normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpContext.Current.User.Identity
    En espérant t'avoir aidé.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    J'ai bien mis <authentication mode="Windows"/>

    Et en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                Dim WinId As IIdentity
                WinId = HttpContext.Current.User.Identity
                Dim wi As WindowsIdentity
                wi = WinId
    j'obtiens le login d'administrateur m'ayant servi pour la publication

    En utilisant :
    j'obtiens la même chose, et j'obtiens NETWORK SERVICE avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Principal.WindowsIdentity.GetCurrent.Name

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Tu es sur que ton serveur IIS est configuré pour utiliser l'authentification Windows ?

    Dans le panneau de propriéts de IIS, sur l'onglet Directory Security => Authentication Methods +> paneau Autneticated Access, tu dois avoir la checkbox "Integrated Windows Authentication" cochée, sinon, il me semble que cela ne peut pas fonctionner.

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    La case est cochée.

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Quel browser utilises-tu ?

  7. #7
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Tu n'aurais pas un Impersonate à true par hasard ??

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    J'utilise internet explorer 7.

    Pour <identity impersonate="false"/>
    J'ai essayé à true et à false.
    La seul différence à true, est que Principal.WindowsIdentity.GetCurrent.Name me donne le nom de l'admin plutôt que NETWORK SERVICE

  9. #9
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Pour compléter les infos de bluedeep, quelles sont les cases cochées dans IIS ?

    Si tu as l'acces anonyme autorisé, ca va aussi ne pas fonctionner, commence par tout décocher sauf "Integrated Windows Authentication"

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Question basique, mais au niveau de IE tu as bien la case "Activer l'authentification Windows Integrée" de cochée ? (Options -> avancées -> sécurité).

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Bonjour,
    dans IIS, j'ai bien décoché les autres case d'accès.

    Sur ie, dans les paramètres de sécurité \ authentification windows j'ai connexion automatique.

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par biboup Voir le message
    Bonjour,
    dans IIS, j'ai bien décoché les autres case d'accès.

    Sur ie, dans les paramètres de sécurité \ authentification windows j'ai connexion automatique.
    Ce paramètre "connexion automatique" ne me dit rien du tout.

    Non, je parle du paramètre "Activer l'authentification windows intégrée" qui est dans Outils -> Option Internet -> Avancés -> Sécurité.

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Oui, je ne connaissais pas ce paramètre, mais il est effectivement coché.

  14. #14
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bon, reprenons depuis le début :

    - ton client à un compte domaine sur le même domaine que le serveur ?
    - ou le cas échéant sur un domaine "trustee" avec le domaine du serveur ?

  15. #15
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    le client est sur le même domaine que le serveur.

    Le résultat retourné par la page est similaire à l'éxecution de la page directement sur le serveur avec le login admin.

  16. #16
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Est ce possible de récupérer la variable sur le poste client en utilisant du javascript, et de transférer cette variable à mon code behind afin que je puisse la manipuler?

    C'est la solution que j'essaye d'explorer actuellement, mais le transfert vers le code behind me pose un peu problème.

  17. #17
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par biboup Voir le message
    Est ce possible de récupérer la variable sur le poste client en utilisant du javascript, et de transférer cette variable à mon code behind afin que je puisse la manipuler?

    C'est la solution que j'essaye d'explorer actuellement, mais le transfert vers le code behind me pose un peu problème.

    Je ne pense pas et de toute manière tu n'obtiendras que le login, pas le contexte de sécurité.

    Non, ce que tu tentes doit fonctionner, il fait juste dérterminer pourquoi ça ne marche pas chez toi.

    Poste le code où tu récupéres la windows identity.

  18. #18
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                Dim loginwindows As String
                loginwindows = HttpContext.Current.User.Identity.Name.ToString 'Principal.WindowsIdentity.GetCurrent.Name
                loginwindows = loginwindows.Substring(1 + loginwindows.LastIndexOf("\"))
    la suite, je prend cette variable et utilise des fonctions du framework interne gérant la connexion et les droits.

    Je rappelle que je cherche uniquement le login windows du client.
    Le reste est géré par les autres fonctions et la base de données.

  19. #19
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Ok.

    Ce bout de code est appelé dans le page_load ?

  20. #20
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Oui l'initialisation de la variable se fait directement dans le page_load.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Authentification via login et mdp
    Par arngrimur dans le forum ASP.NET
    Réponses: 7
    Dernier message: 31/10/2011, 17h33
  2. Exploiter l'authentification via la session windows
    Par billard_fm dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 09/02/2009, 15h07
  3. [C#] Login Windows
    Par BiM dans le forum ASP.NET
    Réponses: 14
    Dernier message: 21/04/2005, 11h12
  4. [cvs] Jbuilder 9, Cvs Via Ssh Sous Windows
    Par SurfingPoP dans le forum JBuilder
    Réponses: 3
    Dernier message: 13/02/2004, 15h57
  5. Login Windows
    Par Summer dans le forum MFC
    Réponses: 5
    Dernier message: 17/10/2003, 09h29

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