Ich habe einen WCF-Dienst in IIS gehostet, der Daten aus mehreren Quellen (alle SQL Server) abruft. Mit jeder Datenquelle muss ich einen anderen Active Directory-Benutzer annehmen, um eine Verbindung mit der Datenbank herzustellen. Ich verwende Entity Framework v6.1.1 für zwei der Datenquellen. Integrierte Sicherheit wird auch in den Verbindungszeichenfolgen auf True gesetzt.
Ich verwende das Beispiel unten, um den imitierten Benutzer festzulegen, wobei der imitierte Benutzer ein System.Security.Principal.WindowsImpersonationContext
ist, das ich in der Konfiguration festgelegt habe:
Das Problem ist, dass der vorherige Code eine SqlException
ausgibt, die besagt, dass das Konto, das den Web-Service ausführt, sich nicht bei der Datenbank anmelden kann. Es scheint, dass ich den Identitätswechselkontext verliere, wenn ich await
drücke.
Was sind einige Vorschläge, um dieses Problem zu lösen?
Legen Sie legacyImpersonationPolicy
auf false
und fest alwaysFlowImpersonationPolicy
bis true
in web.config
und IIS neu starten
Tags und Links .net sql-server c# entity-framework async-await