Ich habe zwei Maschinen, wir nennen sie Maschine A und Maschine B. Maschine B führt einen Windows-Dienst aus, der in C# .net als das lokale Systemkonto geschrieben wird. Maschine A teilt dem Dienst von Maschine B (mit WCF) mit, eine Datei im Netzwerk zu öffnen. Da das lokale System kein Netzwerkbenutzer ist, hat es keinen Zugriff auf Netzwerkdateien und kann die Datei nicht öffnen. Derzeit lese ich Dateien von Maschine A und serialisiere sie als Zeichenfolgen für Maschine B und schreibe sie dann lokal auf B. Ich habe darüber nachgedacht, ein generisches Netzwerkkonto für Maschine B zu erstellen, damit es Zugriff auf das Netzwerk haben kann ist unerwünscht. Gibt es eine Möglichkeit, Maschine B Dateien mit dem Benutzerkonto von Maschine A zu öffnen? Ich habe mir die Identity-Klassen des System-Sicherheitsprinzipals angesehen. Würde dies ein Fall sein, um sie zu verwenden?Wie kann ich Benutzeranmeldeinformationen zur Verwendung auf einem Remotecomputer mit WCF senden?
2
A
Antwort
3
MSDN - How to: Impersonate a Client on a Service
einen Client auf einem Windows Communication Foundation (WCF) -Dienst Impersonating ermöglicht es dem Service-Aktionen im Namen des Kunden durchzuführen. Für Aktionen unterliegt Zugriffssteuerungsliste (ACL) prüft, wie der Zugriff auf Verzeichnisse und Dateien auf einem Computer oder Zugang zu einer SQL Server-Datenbank, ist die ACL-Prüfung gegen das Client-Benutzerkonto
Vergessen Sie auch nicht, Ihren Dienst für die Verwendung der Windows-Authentifizierung zu konfigurieren und eine unterstützte Bindung zu verwenden.
Verwandte Themen
- 1. WCF + Benutzeranmeldeinformationen
- 2. xsd.exe - Schema zur Klasse - zur Verwendung mit WCF
- 3. WCF - Benutzeranmeldeinformationen ohne sichere Kommunikation übergeben
- 4. Pfad zu Programmdateien auf Remotecomputer
- 5. Wie ordne ich Netzwerklaufwerk mit Benutzeranmeldeinformationen zu
- 6. Wie kann ich ein Arduino-Programm zur Verwendung auf einem Netduino auf .net portieren?
- 7. Wie kann ich einen geplanten Task auf einem Remotecomputer programmgesteuert stoppen/starten?
- 8. Wie Ändern der LogFile.Directory-Eigenschaft über WMI auf einem Remotecomputer?
- 9. Starten Sie IIS auf Remotecomputer neu
- 10. Kann keine großen Nachrichten über WCF senden
- 11. Visual Studio 2012 kann keine Verbindung zum BizTalk Adapater-Dienst auf einem Remotecomputer herstellen
- 12. credentialcache.defaultcredentials falsche Benutzeranmeldeinformationen zurückgegeben
- 13. Senden von Nachrichten an MSMQ mit einem WCF-Dienst
- 14. Wie kann ich ein Datagramm mit einem Ethernet-Trailer senden?
- 15. Wie kann ich unbekannte Felder in einem WCF-Datenvertrag erhalten?
- 16. Senden von HTTP-Authentifizierungsdaten mit einem WCF-Dienst Referenz
- 17. Benutzeranmeldeinformationen in einer Silverlight-Anwendung speichern
- 18. Wie kann ich den Rollenmanager in einem WCF-Dienst verwenden?
- 19. WCF - Wie verschlüssele ich Nachrichten?
- 20. Zugriff auf JBOSS Tomcat-Webanwendung über Remotecomputer
- 21. WCF - wie kann ich Dienste objektorientierter definieren?
- 22. Verwendung von IOperationBehavior zur Bereitstellung eines WCF-Parameters
- 23. Wie kann ich mehrere Pings auf einmal unter Verwendung von Java unter Windows ohne ping.exe senden?
- 24. Wie kann ich mit ActionCable auf mehrere Kanäle gleichzeitig senden?
- 25. Wie kann ich WCF für die Verwendung von x509-Zertifikaten über das Internet konfigurieren?
- 26. kann keine Verbindung zu Remotecomputer mit WMI und Perl herstellen
- 27. Wie erzwingen Sie einen .net-WCF-Client zur Verwendung von NTLM in einem basicHttpBinding?
- 28. Wie übergeben Sie Benutzeranmeldeinformationen vom WebClient an einen WCF-REST-Service?
- 29. Kann ich eine Service-Referenz mit netTcpBinding in WCF hinzufügen?
- 30. Wie bekomme ich Python zur Verwendung Assembly
Okay, sieht aus wie ich habe es funktioniert meistens, aber wenn ich client.ClientCredentials.Windows.ClientCredentials.UserName überprüfen, scheint es leer zu sein. Es sieht so aus, als würde dies nicht meine Anmeldeinformationen aus Active Directory abrufen, aber alles andere scheint sich so zu verhalten, wie es sollte. – MGSoto
@MGSoto, ClientCredentials.Windows.ClientCredentials.UserName dient nicht zum Abrufen von Clientanmeldeinformationen, sondern zum Bereitstellen einer anderen Gruppe von Windows-Anmeldeinformationen (im Grunde eine Eigenschaft nur festlegen), um den aktuellen Benutzer Verwendung Environment.UserName oder System.Windows zu erhalten .Forms.SystemInformation.UserName ... aber es gibt auch andere Möglichkeiten –
Okay, das macht Sinn. Ich hatte gehofft, dass es mir zeigen würde, was es als der eingeloggte Benutzer betrachten würde. Irgendeine Idee, warum ich immer noch Zugang erhalten könnte, wurde Fehler verweigert? Ich folge MSDN Wort für Wort, der einzige Unterschied ist, anstatt Zahlen hinzuzufügen, ich öffne eine Datei. – MGSoto