2009-09-23 7 views
0

Je ne peux pas sembler utiliser un compte Windows pour accéder à ma base de données à partir de ma page ASP. Voici ma chaîne de connexion: provider = SQLOLEDB; DATA SOURCE = NHA-SQL-I0; UID = DOMAIN \ NHA-svcRequestForm; PWD = mot de passe; DATABASE = RequestFormsauthentification à SQL 2005 en utilisant le compte de domaine à partir de ASP

Je reçois le classique: Microsoft OLE DB pour SQL Server (0x80040E4D) La connexion a échoué pour l'utilisateur 'NIRHB \ NHA-svcRequestForm'.

Cela se produit pour tout compte de domaine que j'utilise. L'utilisation de comptes SQL fonctionne correctement. Avez-vous une idée du paramétrage/de la configuration qui me manque?

Merci

+0

ASP classique ou .NET? – AnthonyWJones

+0

Ceci est ASP classique. – Kolten

Répondre

1

Ce type de chaîne de connexion est utilisé pour les comptes SQL; vous essayez en fait de vous connecter en tant qu'utilisateur SQL nommé "DOMAIN \ NHA-svcRequestForm".

Essayez somethign comme ceci:

PROVIDER=SQLOLEDB;DATA SOURCE=NHA-SQL-I0;DATABASE=RequestForms;Trusted_Connection=YES 

Et quelle que soit l'application tente de se connecter à la base de données doit être en cours d'exécution en tant qu'utilisateur de domaine. Cela signifie que l'identité du pool d'applications doit être définie sur votre utilisateur de domaine (s'il s'agit d'une application Web dans IIS) ou si l'identité de service doit être l'utilisateur de domaine (si un service Windows).

+0

Ok, donc j'ai le pool d'applications défini pour utiliser le "DOMAIN \ NHA-svcRequestForm" pour l'identité, mais maintenant je reçois toujours une erreur "Service indisponible" lorsque j'essaie de charger une page ... Vérifié le nom d'utilisateur et mot de passe sont corrects. Ajout de la chaîne de connexion comme détaillé ci-dessus, mais non partez! Une idée de ce qui ne va pas? Je suis habitué à des messages plus détaillés que "Service non disponible" ... – Kolten

+0

Essayez d'ajouter cet utilisateur au groupe IIS_WPG sur le serveur. Les comptes agissant comme une identité de processus de travail ont besoin de certaines permissions pour fonctionner correctement. –

1

La spécification du nom d'utilisateur et du mot de passe dans la chaîne de connexion fonctionne uniquement pour l'authentification SQL.

Pour l'authentification intégrée (c'est-à-dire utiliser un 'compte de domaine'), vous devez spécifier Integrated Security=SSPI à la place. Vous ne pouvez pas spécifier explicitement un nom d'utilisateur, SQL va authentifier le compte exécutant le processus de mappage de la connexion (c'est-à-dire le compte ASP).

Si vous souhaitez authentifier les utilisateurs de domaine connectés à votre site, vous devez activer l'emprunt d'identité dans votre pool d'applications et activer la délégation contrainte. Voir How To: Use Protocol Transition and Constrained Delegation in ASP.NET 2.0.

+0

Je pense qu'il utilise ASP classique, même si ... même si votre réponse s'applique toujours! –

+0

Ceci est ASP classique. – Kolten

+0

La délégation contrainte et l'emprunt d'identité fonctionnent de la même manière dans ASP classique. Il existe de nombreux guides sur la façon de configurer cela, par exemple. http://technet.microsoft.com/en-us/library/dd296638(WS.10).aspx –

Questions connexes