2009-07-15 10 views
1

Je viens de migrer un poste de travail de développementSQL Server 2000 + ASP.NET: Échec de la connexion pour l'utilisateur 'NT AUTHORITY ANONYMOUS LOGON'

  • DE: Windows XP Pro SP3 avec IIS 6
  • À: Vista Enterprise 64bit avec IIS 7

depuis le déménagement, l'une de mes pages qui accède à une base de données SQL Server 2000 reçoit l'erreur suivante de ma page Web ASP.NET 2.0: « Échec de la connexion pour l'utilisateur « NT AUTHORITY \ ANONYMOUS LOGON '. "

J'ai:

  • activé l'authentification Windows dans IIS et web.config
  • désactivé l'authentification anonyme dans IIS
  • mis en place Impersonation pour fonctionner comme l'utilisateur authentifié
  • vérifié que les connecté utilisateur (dans ce cas, moi) a accès à la base de données appropriée sur le serveur SQL
  • vérifié que mes informations de connexion et d'usurpation d'identité sont correctes dans la page ASP.NET par che cking User.Identity.Name et System.Security.Principal.WindowsIdentity.GetCurrent() Nom (à la fois afficher mon nom d'utilisateur)

Ma chaîne de connexion à l'aide SqlConnection est « Serveur = {Nom_serveur};. Base de données = {} DB_NAME Sécurité intégrée = SSPI; Trusted_Connection = True; " Pourquoi essaie-t-il de se connecter avec NT AUTHORITY \ ANONYMOUS LOGIN? Je dois supposer que c'est un paramètre ou une entrée web.config propre à IIS7, car cela fonctionnait bien avant la migration. REMARQUE: SQL Server est l'authentification Windows uniquement - pas de mode mixte ou uniquement SQL.

+0

Cela appartient à serverfault –

+0

SQL est installé sur un autre dfferent? – gbn

+0

@Russ: vote pour le fermer alors – gbn

Répondre

1

En supposant que SQL Server est installé sur une boîte séparée et est dans un domaine

Vos besoins de poste de travail activé pour la délégation dans Active Directory pour passer par les informations d'identification (« jeton de connexion ») et pour permettre l'usurpation d'identité de travailler. Il semble que c'est ce que vous essayez de faire en fonction de vos autres étapes,

2

vous aurez besoin de configurer un SPN dans le répertoire actif. En supposant que vous utilisez SQL Server sous un compte de service de domaine sur le serveur intermédiaire, vous devez exécuter ce lien sur le contrôleur de domaine:

setspn -A MSSQLSvc/SERVERNAME.domain.name:1433 domainname\SQLServiceAccount 

ÉlimiMercure SERVERNAME pour le nom du serveur intermédiaire (celui qui est l'accès à la zone SQL 2000 en votre nom), assurez-vous d'utiliser le nom de domaine complet (IE.MyServer.mycompany.local), puis domainname \ SQLServerAccount est le compte que vous utilisez pour exécuter les services SQL (IE le compte cela accèdera à la boîte SQL 2000 en votre nom).

Si vous voulez plus de détails, voici un article MSDN à ce sujet - http://technet.microsoft.com/en-us/library/bb735885.aspx. Poster de nouveau si vous rencontrez des problèmes.

0

Exécuté dans SSMS

EXEC maître ..sp_addsrvrolemember @loginame = N'NT SERVICE \ MSSQLSERVER ', @rolename = N'sysadmin'

Questions connexes