je développe actuellement une application ASP .Net 2.0 depuis laquelle
j'essaie de manipuler l'Active Directory : ajout et suppression d'un
utilisateur.
Ca marche nickel quand j'éxécute depuis Visual Studio en DEBUG
l'application car le compte utilisé lors de la manipulation est celui
de Windows mais j'ai un refus d'accès lorsque j'effectue la manip une
fois l'application Web publiée sur IIS (car c'est le compte ASPNET qui
entre en jeu).
Ma question est donc : comment donner les droits d'accès à l'AD au compte ASPNET pour plus que çà plante ???????
Public
Function SearchUser(
ByVal UserName
As
String)
Dim Result
As SearchResult
Dim Search
As
New DirectorySearcher
' Paramétrage de la requête
Search.SearchRoot =
Me._ActiveDirectory
Search.Filter =
"SAMAccountName=" + UserName
' Récupération du résultat de la requête
Result = Search.FindOne()
Catch ex
As Exception
Throw
New System.Exception(ex.Message)
End
Try
End
Function
Ensuite tu utilise tes commandes create delete etc.. Bien sur l'utilisateur qui se connecte sur ton site doit avoir les droits de créér des user etc...
Donne moi tes commentaires j'ai tenté l'experience pour faire des recherches sur des utilisateurs (Ce qui ne demande pas beaucoup de droit) mais pas pour crééer des utilisateurs
1/ Ajout de la ligne suivante dans le web.config :
Ce qui me permet d'avoir une impersonnation persistante, toutes les actions lancées depuis mon appli Web se feront avec le compte "AdminUserName" qui fait parti du groupe "Administrateurs".
2/ Par contre quand j'accède à l'active Directory, il faut bien faire de la redondance et réindiquer avec quel compte on fait l'action sinon çà ne fonctionne pas :
DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer", Environment.MachineName + "\" + ConfigurationManager.AppSettings["AdminUsername"], ConfigurationManager.AppSettings["AdminPassword"]);
Je suppose que c'est une sorte de sécurité supplémentaire que de réindiquer le username et password ?
Voilà en tout cas maintenant çà marche tout bien !!!
Note : Pourquoi j'ai fais une impersonnation persistante ? Car sinon je ne pouvais plus accéder en écriture au système de fichiers (notamment pour créer des fichiers XML)...
Oui mais en fait çà ne marchera pas dans mon cas car le client qui se connecte est anonyme et en plus on peut accéder à mon applu depuis un PC et un PDA.
Merci de ton aide tout de même, çà en aidera d'autre