2009-06-12 6 views
0

J'utilise C# pour authentifier les utilisateurs à mon application comme suit:LDAPS fonctionne sur Visual Studio 2008, mais ne fonctionne pas sur IIS 5.1

LdapConnection connection = null; 
     try 
     {     
      using (connection = new LdapConnection(Configuration.JonahLdapServer)) 
      { 
       connection.Credential = new NetworkCredential(userName, password, Configuration.JonahDomain); 
       connection.AuthType = AuthType.Basic; 
       connection.SessionOptions.SecureSocketLayer = true; 
       connection.SessionOptions.VerifyServerCertificate = 
        new VerifyServerCertificateCallback(AlwaysTrustCertificateDelegate); 
       connection.Bind(); 
       return true; 
      } 
     } 

Quand je lance ceci dans VS 2008, il fonctionne très bien. Cependant, quand je Déployez l'application à IIS 5.1, il me donne la stacktrace suivante:

System.DirectoryServices.Protocols.LdapException: Le serveur LDAP est indisponible. System.DirectoryServices.Protocols.LdapConnection.Connect() à System.DirectoryServices.Protocols.LdapConnection.BindHelper (NetworkCredential newCredential, Boolean needSetCredential) à System.DirectoryServices.Protocols.LdapConnection.Bind() à Jonahgroup.Lychee.Presentation .Security.SecurityManager.AuthenticateUser (String userName, mot de passe Chaîne)

il convient de noter que si je lance le code sans SSL, il fonctionne très bien sur les deux IIS et VS.

Toute aide serait appréciée.

Répondre

0

Il convient de noter que si je cours le code sans SSL, cela fonctionne très bien sur IIS et VS.

Le impliquerait que le problème est davantage lié à la configuration de votre ssl que toute autre chose, mais pourquoi vous utilisez ce sur windows xp (IIS 5.1), qui est un système de bureau de classe, au lieu d'un Windows Server Edition n'est pas clair.

+0

Je ne comprends pas comment les configurations SSL peuvent entrer en jeu ici. La connexion sécurisée est entre le code et le serveur LDAP. En tant que tel, IIS ne devrait pas se soucier de la façon dont l'authentification est faite (à moins qu'il y ait un besoin de configurer les paramètres ldap avec IIS, dont je ne suis pas au courant). –

1

Le compte IIS n'a pas accès au magasin de certificats. Vous pouvez modifier le compte IIS pour qu'il s'exécute comme vous-même (non recommandé pour un déploiement de production) ou accorder l'accès au compte IIS actuel à chacun de vos certificats (sous c: \ Documents And Settings \ Tous les utilisateurs \ Application Data \ Microsoft \ Crypto \ RSA). Par ailleurs, j'ai trouvé un thread similaire dans lequel l'auteur était capable de basculer le compte IIS pour utiliser ASPNET à partir du compte IUSR_.

http://www.velocityreviews.com/forums/t109404-aspnet-and-ldap.html

Questions connexes