Ich habe eine asp.net app (Windows-Authentifizierung für den Zugriff verwendet), die (durch das Sicherheitsteam festgelegt) muss eine Verbindung zu einem Remote SQL Server 2005 mit integrierter Sicherheit herstellen .Da der Tatsache, dass es mir Remote-SQL-Server benötigen ein benutzerdefiniertes Konto (imitiert den ursprünglichen Anrufer arbeiten würde nicht) zum imitieren über:ASP.NET Web App kann nicht mehrere Identitätswechsel für Authentifizierung verwenden
<identity impersonate = "true" userName="domainname\user" password="password" />
Diese workes in Ordnung. Der Haken ist, dass meine App auch eine Verbindung zu einem SSRS-Server herstellt, um mit dem ReportViewer-Steuerelement Berichte zu erstellen. Der Berichtsserver befindet sich auf einem separaten Server und das Sicherheitsteam schreibt vor, dass alle Aufrufe dieses Servers das Konto des ursprünglichen Fensters für Überwachungszwecke verwenden müssen. Es scheint, dass meine einzige Option war, zu versuchen, meine App in Ordnern zu trennen und ein "Standort" -Tag in meiner web.config zu verwenden und separate Identitätstags zu verwenden. Wie zum Beispiel:
Hinweis: Kein Benutzername und Passwort angegeben, was bedeutet, dass es den ursprünglichen Anrufer imitieren sollte.
Um die Sache noch komplizierter zu machen, ist meine App eine Masterpage/Content Page App. Die Masterseite ruft Aufrufe von SQL auf, um Menüs und ähnliches aufzufüllen. Unterste Zeile ist die doppelte Identitätswechsel-Spur funktioniert nicht. Ich bin bereit, meine Hände hochzuwerfen und zu erklären, dass dies nicht möglich ist. Wenn es einen Weg gäbe, wo ich die App den ursprünglichen Anrufer annehmen lassen könnte, der meine SSRS Auditing-Bedürfnisse befriedigen würde, stellen Sie Verbindungen zum SQL Server als das benutzerdefinierte Domänenkonto her. Ich kann SQL-Authentifizierung nicht verwenden: nicht erlaubt, obwohl das das Problem lösen würde.
Als ich den Identitätswechsels für einen benutzerdefinierten Benutzer wie Set: die Windows-Identität ist der individuelle Benutzer. Ich habe es versucht und es ist eine Tatsache. Wenn ich also standardmäßig den ursprünglichen Benutzer mit verwende, wie gebe ich den benutzerdefinierten Benutzer für meine DB-Aufrufe an? –
MikeD
Wenn Speicher mir richtig dient, sollte es automatisch tun, vorausgesetzt, die Verbindungszeichenfolge verwendet den Kontext von sspi. – kemiller2002