begin process at 2008 08 28 20:55:16
1 233 373 membres
466 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OBTENIR NOM USER WINDOWS


Information sur la source

Catégorie :ASP.Net Source .NET ( DotNet ) Classé sous : utilisateur, user, windows, ntlm, username Niveau : Initié Date de création : 02/06/2004 Vu : 11 314

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Dans un intranet, pour que l'application web puisse attribuer certaines pages à une entité précise, sans passer par un mode authentification formulaire, il est possible de prendre le nom d'utilisateur Windows

Source

  • 1 er étape :
  • Sachant qu'il y a une authentification du serveur IIS et de l'application asp.net
  • Dans les paramètres du serveur IIS, il faut d'abord :
  • pour Windows 2000
  • - clic droit sur le poste de travail/
  • gérer /Services et applications/ service internet/site web par défault/propriété
  • l'onglet Sécurité de répertoire / Accès anonyme et controle de repertoire
  • il faut juste cocher Authentification integrer Windows
  • Ou bien il faut avoir le fichier web.config comme suivant
  • <configuration>
  • <system.web>
  • <authentication mode="Windows"/>
  • <identity impersonate="true"/>
  • <customErrors mode="Off"/>
  • ..........
  • 2 ème étape
  • Dans votre page aspx ou bien sur le html contient un label1
  • Sub Page_load(sender As Object, e As EventArgs)
  • 'Méthode n°2
  • AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
  • 'sans cet appel, l'entit" renvoyé serait une classe GenericPrincipal
  • ' qui ne contiendrait aucune information d'utilisateur
  • Dim ident As WindowsIdentity = WindowsIdentity.GetCurrent()
  • Label1.text= Ctype(ident.Name,string)
  • end sub
  • 3ème étape
  • J'ai partagé mon dossier, où est hébergé mon site, au groupe "utilisateur authentifié" c'est un partage NTFS en plus du partage Web.
  • Dans le serveur IIS sur le dossier de l'appli web "clic droit sur le poste de travail/
  • gérer /Services et applications/ service internet/site web par défault/<dossier partage web> clic droit toutes les taches> Assistant autorisation> w2000 "remplacer toutes autorisation de rep. et de fichier"
1 er étape : 
Sachant qu'il y a une authentification du serveur IIS et de l'application asp.net
Dans les paramètres du serveur IIS, il faut d'abord :
pour Windows 2000
- clic droit sur le poste de travail/ 
gérer /Services et applications/ service internet/site web par défault/propriété
 l'onglet Sécurité de répertoire / Accès anonyme et controle de repertoire
 il faut juste cocher Authentification integrer Windows 
Ou bien  il faut avoir le fichier web.config comme suivant
<configuration>
    <system.web>
             <authentication mode="Windows"/>
                
		<identity impersonate="true"/>
		<customErrors mode="Off"/>
..........

2 ème étape 


Dans votre page aspx  ou bien sur le html contient un label1

Sub Page_load(sender As Object, e As EventArgs)

'Méthode n°2

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
'sans cet appel, l'entit" renvoyé serait une classe GenericPrincipal
' qui ne contiendrait aucune information d'utilisateur

Dim ident As WindowsIdentity = WindowsIdentity.GetCurrent()
Label1.text= Ctype(ident.Name,string)
end sub

3ème étape 

J'ai partagé mon dossier, où est hébergé mon site, au groupe "utilisateur authentifié" c'est un partage NTFS en plus du partage Web. 
Dans le serveur IIS sur le dossier de l'appli web "clic droit sur le poste de travail/ 
gérer /Services et applications/ service internet/site web par défault/<dossier partage web> clic droit toutes les taches> Assistant autorisation> w2000 "remplacer toutes autorisation de rep. et de fichier"

Conclusion

Voila ca affiche juste le "nom domaine/nom_user"
Donc c'est un script assez simple mais très utile pour une authentification automatique et un acces au base de données; Je l'utilise dans une application de gestion des absences pour un intranet.
Merci encore MSDN
;-) nicolasalaun@yahoo.fr
  • signaler à un administrateur
    Commentaire de nykso_matose le 02/06/2004 14:29:03

    il faut importer cette espace  nom sinon ca marche pas
    &lt;%@ import Namespace="System.Security.Principal" %&gt;

  • signaler à un administrateur
    Commentaire de oliv211 le 02/09/2004 21:09:19

    Exemple sympa et très pratique/concret
    :)
    J'ai un projet en asp.net où ce code va me simplifier la vie.
    Merci et A+!

  • signaler à un administrateur
    Commentaire de serhani le 15/09/2004 16:40:56

    pourquoi ne pas intégrer cette authentification plutôt dans le fichier global.asax (partie session)?

  • signaler à un administrateur
    Commentaire de kach23 le 13/09/2005 11:27:17

    Bonjour,

    à partir de la, est ce que quelqu'un saurait récupérer la liste des groupes auquels appartient un utilisateur?
    ca m'aiderait bien...
    A+

  • signaler à un administrateur
    Commentaire de frank241 le 20/04/2006 17:01:37

    Bonjour,

    Merci pour cet exemple :

    en plus de :

    AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
    'sans cet appel, l'entit" renvoyé serait une classe GenericPrincipal
    ' qui ne contiendrait aucune information d'utilisateur
      
    Dim ident As WindowsIdentity = WindowsIdentity.GetCurrent()
    Label1.text= Ctype(ident.Name,string)
            

    J'ai trouvé la commande suivante pour récupérer Domaine\Login
    Request.ServerVariables("LOGON_USER")

    Pour ma part j'ai mis ce code dans mon Global.asax.vb

    mais à chaque fois que je tentais de me connecter, il m'envoyait un formulaire ou je devais saisir login et mot de passe.
    (Pas de pare-feu entre mon serveur et moi)

    La solution :
    Outils/Option Internet/Sécurité
    Puis
             Personaliser le niveau
    Et
             Cocher "connexion automatique avec le nom d'utilisateur et le mot de passe actuel"


    Voilà

    Ma remarque est peut être conne mais ce qui est évident doit parfois être dit ;-)

    Merci

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS