Application server ASP.NET/SQL: Échec de la connection pour l'user 'NT AUTHORITY \ ANONYMOUS LOGON'

J'ai une application héritée sur laquelle je fais de la maintenance. Il est construit avec Visual Studio 2008, les formulaires Web ASP.NET, SQL Server et .NET 3.5. L'application utilise l'authentification par formulaires, soutenue par ActiveDirectoryMembershipProvider .

Les ordinateurs vivent dans deux domaines.

Les domaines sont:

  • Dev PC: companydomain
  • Serveur de test: dev.companydomain
  • Dev SQL Server: société

L'application fonctionne très bien sur mon PC de développement et se connecte au server Dev SQL. Tout est dans le même domaine.

Une fois déployée sur le server de test à des fins de test, une exception est levée lorsque l'application se connecte à la database. Le browser fonctionne sur Dev PC. L'application est connectée à l'aide de mes informations d'identification (companydomain \ myusername). Le server de test se connecte également au server Dev SQL Server.

L'erreur est:

 Error: SqlException (18456): Procedure: Line: 65536 State: 1 Message: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. 

J'ai exécuté une trace de SQL Server Profiler et get ce qui suit:

 Audit Login Failed Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. .Net SqlClient Data Provider ANONYMOUS LOGON NT AUTHORITY\ANONYMOUS LOGON 3208 90 2014-02-24 15:40:43.313 

Web.config

 <authentication mode="Forms"> <forms name=".ASPXFORMSAUTH" loginUrl="Default.aspx" /> </authentication> <identity impersonate="true"> </identity> <Connection name="Connection Name" connectionSsortingng="Data Source=DatabaseServer;Initial Catalog=DatabaseName;Integrated Security=SSPI;"/> 

Paramètres d'authentification IIS

Paramètres sur le server de test.

Paramètres d'authentification IIS

J'ai ajouté un code de journalisation qui vide l'user actuel. Thread.CurrentPrincipal.Identity renvoie l'user Windows connecté à l'application. WindowsIdentity.GetCurrent() renvoie NT AUTHORITY \ IUSR .

Quelle est l'origine de l'exception? Pourquoi l'identité "connection anonyme" passe-t-elle par la connection à la database et non par l'user authentifié?