J'ai developpé une petite appli vb.net qui se connecte a un controleur Active directory afin de permettre aux utilisateur de consulter la liste des personnes de l'entreprise et également de mettre a jour les infos les concernant.
Pour cette appli, je me connecte donc a l'AD en utilisant tout le temps un User et un Password (en dur) d'un compte admin. Ouis je sais, ce n'est pas trés top...
Bref en mode autonome (comprenez sur un IIS sans DNN) je n'ai pas de soucis.
J'ai transformé mon appli afin d'en faire un module DNN. Une fois le module installé et positionné sur une des pages DNN, au lieu d'avoir le contenu de mon module j'ai juste le message (meme connecté en tant que Host)
Erreur critique.
Échec d'ouverture de session : nom d'utilisateur inconnu ou mot de passe incorrect
Si je consulte le Log du site je peux voir ceci
AssemblyVersion: 04.05.01
PortalID: 0
PortalName: BERIM Intranet
UserID: 1
UserName: host
ActiveTabID: 167
ActiveTabName: TestAFI
RawURL: /Informatique/RéservéSI/TestAFI/tabid/167/Default.aspx
AbsoluteURL: /Default.aspx
AbsoluteURLReferrer:
UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2)
DefaultDataProvider: DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider
ExceptionGUID: df580712-09c9-4f56-8eb0-89b51bdaf4ff
InnerException: Échec d'ouverture de session : nom d'utilisateur inconnu ou mot de passe incorrect.
FileName:
FileLineNumber: 0
FileColumnNumber: 0
Method: System.DirectoryServices.DirectoryEntry.Bind
StackTrace:
Message: DotNetNuke.Services.Exceptions.PageLoadException: Échec d'ouverture de session : nom d'utilisateur inconnu ou mot de passe incorrect. ---> System.DirectoryServices.DirectoryServicesCOMException (0x8007052E): Échec d'ouverture de session : nom d'utilisateur inconnu ou mot de passe incorrect. at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) at System.DirectoryServices.DirectoryEntry.Bind() at System.DirectoryServices.DirectoryEntry.get_AdsObject() at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne) at System.DirectoryServices.DirectorySearcher.FindAll() at AFI.TestAD.view.ListeUtilisateurs(Object Dest, String champ) at AFI.TestAD.view.Page_Load(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace ---
Source:
Nom du serveur: INTRANET
Comme je débute, et oui, cela ne m'aide pas beaucoup. Mais je me dis que c'est l'identification a l'AD qui foire. Et comme je sais que mon username et password est bon, je me dit que peut être c'est du au fait que DNN crypte les passwords... Enfin c'est la seule idée que j'ai, et pui meme si c'est ca je ne sais pas comment résoudre mon probleme.
L'instruction que j'utilise est
Dim Srv As String = "LDAP://monserveur.masociete.net/"
Dim Path As String = "OU=utilisateurs,DC=societe,DC=net"
Dim loginu As String = "AdminAD"
Dim loginp As String = "Le mot de passe"
Dim Ldap As DirectoryEntry = New DirectoryEntry(Connect, loginu, loginp)
Voila, si quelqu'un a une idée, et si Ploum ou Seb passent par là...
D'avance merci