Ich habe eine alte WebForms-App, .NET 4.8. Die Anwendung verwendet die Windows-Authentifizierung (Unternehmensnetzwerk) mit deaktivierter Anonymität.
Ich möchte in meinem Code auf eine URL zugreifen (nicht weniger in derselben Anwendung), um die Ergebnisse zu erhalten , dann sende diese Ergebnisse an meinen PDF-Maker.
Problem. Auf meinem lokalen Gerät kann ich meinen Code als „DOMAIN\MyUser“ ausführen und arbeiten lassen, was ich möchte. Aber sobald ich die Bereitstellung auf unserem DEV-Server durchführe, wird alles anonym gespeichert (ich schaue mir die IIS-Protokolldateien an), was natürlich nicht funktioniert.
Ich habe eine Menge ausprobiert Ich habe viele Möglichkeiten, WebClient zu verwenden, und habe dann HttpClient ausprobiert, weil WebClient meiner Meinung nach veraltet ist, aber mit WebClient habe ich tatsächlich bessere Ergebnisse erzielt.
Dies ist nur ein Beispiel meines Codes:
Code: Select all
var wi = ( WindowsIdentity )Thread.CurrentPrincipal.Identity;
var wic = wi.Impersonate();
try {
using ( var client = new WebClient { UseDefaultCredentials = true } ) {
resultStr = client.DownloadString( url );
}
}
catch ( Exception ex ) {
System.Diagnostics.Debug.WriteLine( ex.ToString() );
}
finally {
wic.Undo();
}
Könnte das kein Codeproblem sein, sondern ein Serverkonfigurationsproblem?< /P>