2009-12-04 5 views
8

Ich versuche, eine ASP.NET-Website unter Vista (IIS7) mit SQL Server und Windows-Authentifizierung ausführen. Egal was ich tue, wenn ich mit der Datenbank verbinden, erhalte ich die Ausnahme:SQL Server und Windows-Authentifizierung in IIS7

 
    SqlException was unhandled 
    Login failed for user 'MyDomain\MachineName$'. 

Es scheint nicht Rolle, welche Einstellungen ich anwenden, kann ich nicht IIS7 erhalten, meine Windows-Anmeldedaten passieren.

Extra Details:

  • Sowohl die SQL Server und meinem lokalen Rechner sind auf ActiveDirectory-
  • Vista Enterprise, IIS7
  • SQL Server 2005
  • Anonyme Authentifizierung deaktiviert, Windows-Authentifizierung aktiviert
  • Identitätswechsel Ein/Aus macht keinen Unterschied
  • Alle Identitäten (NetworkService, LocalSys tem, usw.) das gleiche Ergebnis
  • Classic und integrierte Rohrleitungen das gleiche Ergebnis

Hilfe!

+1

Ist ISS und SQL Server auf verschiedenen Servern oder die gleicher Server? –

+0

Ja, sie laufen auf verschiedenen Servern. – gerrod

Antwort

0

Haben Sie versucht, ein neues Benutzerkonto für Ihre Anwendung zu erstellen, gewähren Sie die entsprechenden Rechte auf dem SQL Server und legen Sie dann den Anwendungspool für die Ausführung unter diesem neuen Konto fest? Das ist, was ich normalerweise tue, und es funktioniert. Ich verwende meine Anwendung nicht unter NetworkService, LocalSystem oder anderen integrierten Konten.

+0

Nun nein; aber ich muss die integrierte Windows-Authentifizierung verwenden, um herauszufinden, wer der Benutzer der Anwendung ist. Normalerweise würde ich das Gleiche tun, sonst! :-) – gerrod

1

Standardmäßig ist der IIS-Server nicht erlaubt, impersonate Sie auf den SQL Server. Es gibt eine MSDN article zur Konfiguration. Der Konfigurationsprozess ist komplex und fehleranfällig.

Wenn Ihre Produktions-ISS und SQL Server auf verschiedenen Servern ausgeführt werden, benötigen Sie einen Domänenadministrator, um die Identitätsvertrauensstellung zwischen den beiden Servern zu konfigurieren. Dies ist in der Regel ein No-Go in einer großen Organisation.

Neben nicht durch normale Administratoren eingesetzt wird, Identitätswechsel verhindern auch Benutzer von ihren Verbindungen in dem SQL-Connection-Pool teilen. Dies führt zu einer spürbaren Leistungseinbuße auch für kleine (5+ Benutzer) Websites.

+0

OK, danke für den Tipp. Um ehrlich zu sein, ich möchte nur, dass es auf meinem lokalen Rechner funktioniert; Sobald es bereitgestellt wird, überlasse ich es den Netzwerkadministratoren, es auszuarbeiten :-) – gerrod

0

Enthält Ihre Verbindungszeichenfolge Integrated Security=SSPI?

Haben Sie den ASP.net-Kontext auch als Domänenbenutzer geschaltet?

Hier ist ein MSDN-Artikel zu diesem Thema

http://msdn.microsoft.com/en-us/library/2xzyzb0f.aspx

+0

Integrierte Sicherheit wird IUSE zur Authentifizierung als sich selbst, in der Regel 'IUSR_ComputerName' – Andomar