J'ai une application classique ASP que j'essaie de vous connecter à une base de données SQL Server 2008 sur un autre serveur. L'application ASP est servie à partir d'IIS7 sur Windows Server 2008.
J'ai modifié le pool d'applications du site Web à exécuter sous un compte Windows spécifique, que Cependant, lorsque j'exécute l'application dans le navigateur, je reçois cette erreur: p> pourquoi est Il tente de se connecter à l'aide de la connexion NT Authority \ Anonyme?
L'identité de la piscine App ne s'applique-t-elle pas au code ASP classique?
Comment puis-je faire cette connexion en tant qu'utilisateur spécifique? P> Voici la chaîne de connexion que j'utilise: p> fournisseur = sqloledb.1; source de données = mydBServer; catalogue initial = mydatabase; sécurité intégrée = SSPI P>
blockQuote> p> Modifier h3>
3 Réponses :
Vous devez spécifier un nom d'utilisateur et un mot de passe pour la chaîne de connexion www.connectionstrings.com ou définir l'IIS Application à exécuter en tant qu'utilisateur spécifique, cependant, cela rendrait alors beaucoup de paramètres de sécurité dans IIS obsolètes.
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername; Pwd=myPassword;
Je ne veux pas désactiver l'accès anonyme. J'utilise un formulaire pour authentifier les utilisateurs.
Vous ne devriez pas spécifier un nom d'utilisateur et un mot de passe (I.E. Authentification SQL) si vous pouvez l'éviter. Utilisation de l'authentification Windows (sécurité intégrée) signifie que vous n'avez pas besoin de mettre des informations d'identification dans vos fichiers de configuration, de sorte que si ces fichiers sont compromis, vous ne perdez pas le contrôle des informations d'identification. J'ai ajouté une réponse qui montre comment obtenir l'authentification Windows fonctionner pour l'ASP classique.
@Ronnieverby cela ne devrait pas être la réponse acceptée! Voir @robinm Réponse .
Je peux supprimer cela si ce n'est plus nécessaire.
Votre application impernait-elle l'appelant? Vous devez activer la délégation contrainte: Configuration de serveurs pour la délégation a>. p>
Ces serveurs ne sont ni membres d'un domaine Active Directory.
Sécurité intégrée = SSPI a besoin de NTLM / Kerberos au travail. Vous pouvez créer un domaine et utiliser Tru Windows Auth, utiliser une authentification SQL ou créer des comptes d'utilisateur / mot de passe locaux identiques sur les deux machines et demandez au pool d'applications.
@REMUS - "... ou créez des comptes d'utilisateur / mot de passe locaux identiques sur les deux machines et demandez au pool d'applications d'utiliser ces informations d'identification." C'est exactement ce que j'ai fait, mais cela ne fonctionne pas. Je l'ai fait pour un site ASP.NET qui travaille avec le même compte. C'est frustrant.
Je ne pense pas que votre pool d'applications ASP classique fonctionne réellement en tant qu'utilisateur que vous vous attendez à ce qu'elle fonctionne. Mais je ne suis pas assez familier avec l'ASP classique sur IIS7 Quirks pour deviner pourquoi.
Pour un site d'utilisation de l'identité de pool d'applications pour ASP classique, vous devez modifier les informations d'identification utilisées pour l'authentification anonyme. Par défaut, le site sera défini pour utiliser un utilisateur spécifique, à savoir IUSR. P>
Sélectionnez p>
Il est conseillé d'utiliser l'authentification Windows (sécurité intégrée) sur l'authentification SQL sur SQL afin de ne pas avoir de lettres d'identification dans vos fichiers de configuration, de sorte que si ces fichiers sont compromis, vous ne perdez pas le contrôle des informations d'identification. P>
Damedamn, cela me vexait depuis des jours. Merci d'avoir posté une solution.
@Ronnieverby cela devrait être la réponse acceptée! +1