J'ai un petit script de test ASP.NET qui ouvre une connexion à une base de données SQL Server sur une autre machine du domaine. Cela ne fonctionne pas dans tous les cas.
Installer:
IIS 7.5 sous W2K8R2 essayant de se connecter à une instance distante de SQL Server 2008 R2. Toutes les machines sont dans le même domaine.
À l'aide de ApplicationPoolIdentity pour le site Web, il ne parvient pas à se connecter à SQL Server avec les éléments suivants:
La connexion a échoué pour l'utilisateur «NT AUTHORITY \ ANONYMOUS LOGON». Description: une exception non gérée s'est produite lors de l'exécution de la demande Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.Data.SqlClient.SqlException: la connexion a échoué pour l'utilisateur «NT AUTHORITY \ ANONYMOUS LOGON».
Cependant, si je bascule l'identité du modèle de processus vers SERVICE RÉSEAU ou mon compte de domaine, la connexion à la base de données réussit.
J'ai accordé l'accès \ $ dans SQL Server.
Je ne fais aucune sorte d'authentification sur le site Web, c'est juste un simple script pour ouvrir une connexion à une base de données pour s'assurer que cela fonctionne.
J'ai l'authentification anonyme activée et configurée pour utiliser l'identité du pool d'applications.
Comment faire pour que ça marche? Pourquoi ApplicationPoolIdentity essaie-t-il d'utiliser ANONYMOUS LOGON? Mieux encore, comment puis-je empêcher l'utilisation de la connexion anonyme?