Frage

ich an einem Projekt arbeite, die einmal Click-Einsatz ist von einem IIS 7.5 Webserver. Nachdem die übergeordnete Anwendung installieren (das heißt Einrichten der IIS-Website) Ich bin in der Lage die URL für die Click-once App-Konfigurationsdatei von einer Remote-Box zu treffen.
Allerdings, wenn ich die gleiche Sache von meiner app (und dem Stummel App unten) versuchen zu tun, erhalte ich ein 401 Unauthorized.

Was ist der Unterschied zwischen der URL von IE schlagen, und von einem .NET-app?
Die Datei- und Verzeichnis selbst haben die Kontrolle vollständig auf den Webserver zur Zeit für alle gewährt, und ich bin ein Admin auf dem Feld. Wir verwenden die Windows-Authentifizierung mit NTLM nur.

Danke, -Bob

Dies ist die Stub-Anwendung, die die 401 produziert - nicht autorisiert, wenn auf der doc.Load () Linie. Ich kann die gleiche URL erfolgreich von IE schlagen und die Datei öffnen ...

static void Main(string[] args)
    {
        Console.WriteLine("Config Test");
        string filename = "http://dev-rs/myClient/myClickOnce/myApp.config.xml";
        Console.WriteLine(filename);
        XmlDocument doc = new XmlDocument();
        doc.Load(filename);
        Console.WriteLine("Loaded");
        Console.WriteLine("Inner Text : " + doc.InnerText);
    }
War es hilfreich?

Lösung

Stellen Sie das Prinzip:

AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

XMLDocument unterstützt keine Anmeldeinformationen vorbei beim Laden von einer URL. Statt von einem WebRequest Strom laden und die Anmeldeinformationen über den Antrag vor der Last eingestellt.

WebRequest request = HttpWebRequest.Create(filename);
request.Credentials = CredentialCache.DefaultCredentials;

XmlDocument doc = new XmlDocument();
doc.Load(request.GetResponse().GetResponseStream());
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top