ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
699
699
EMPFEHLEN
-
27.07.11 11:44 #1
- Registriert seit
- Aug 2007
- Beiträge
- 329
Hi,
ich möchte eine Datei auf einen FTP-Server hochladen. Dass das mit
geht weis ich.Code :1
request.Method = WebRequestMethods.Ftp.UploadFile;
Wie kann ich aber die Berechtigungen und den Owner der Datei setzen?
Gruß
-
Hallo Raven,
das wird aus sicherheitsgründen Serverseitig realisiert. Die Berechtigungen werden vom auf dem FTP-Server eingeloggten User übernommen. Wenn Du unterschiedliche User verwenden möchtest, muss der FTP-Server diese "kennen" und Du musst Dich entsprechend einloggen und dann die Datei hochladen.
OT:
Btw, bist Du bei deinem SOAP-Problem schon weiter gekommen?MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
27.07.11 12:52 #3
- Registriert seit
- Aug 2007
- Beiträge
- 329
Hi,
gibt es da keine Möglichkeit die Berechtigung zu ändern? Ich hab ein Tool mit dem man ein FTP-Backup erstellen kann. Da gibt es auch Dateien die root gehören, oder CHMOD 0777 haben. Wenn ich das Backup wieder einspiele, muss das ja wieder zurückgesetzt werden.
Wäre das mit ner WinSocket Verbindung möglich (Hab noch nich so viel Ahnung von C#, gibts sowas überhaupt? Komme eher aus de PHP/C++ Ecke
)
OT:
Ne damit bin ich nicht weiter gekommen. Hab mit dem Admin gesprochen, das ist kein richtiger SOAP Server, nur sowas selbst gebautes. Ich hab jetzt den Umweg über eine PHP-API genommen, die noch angeboten wird
GrußGeändert von Raven280438 (27.07.11 um 12:58 Uhr)
-
Wenn es nur die reinen Berechtigungen ohne User sein sollen dann:
- c# ftp chmod
-> Changing Permissons of FTP'ed File
OT: Wenn es kein richtiger SOAP-Server sein soll Du aber eine WSDL-Datei hast? Verstehen muss ich das jetzt nich oder?
Markier den Thread bitte trotzdem als erledigt.
Geändert von Christian Kusmanow (27.07.11 um 15:08 Uhr)
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
28.07.11 13:13 #5
- Registriert seit
- Aug 2007
- Beiträge
- 329
Hi,
bei dem Link Changing Permissons of FTP'ed File gibts einen VB.NET Schnippsel der mit einer TCP Connection arbeitet.
Den werd ich mir mal anschauen und probieren un C# zu übertragen
Auch wenn meine Ausbildung (in der ich ein bisschen VB programmiert hab) schon lange zurück liegt ...
Gruß
-
Fein, wichtig sind ja nur die Klassen und Methoden die verwendet werden. Dein Ergebnis kannst Du dann gerne hier (und für die Nachwelt) posten. Vielleicht kann man das dann gemeinsam noch etwas optimieren...
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
03.08.11 09:54 #7
- Registriert seit
- Aug 2007
- Beiträge
- 329
Hi,
ich hab mir jetzt mit Hilfe des VB-Codes eine Klasse gebaut:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
public class CFTP { public TcpClient tcpClient = null; public bool TcpConnected = false; public bool TcpLoggedin = false; private NetworkStream netStream = null; public String Domain = null; public int Port = 21; public String User = null; public String Pass = null; public CFTP(String hostname, int port=21) { this.tcpClient = new TcpClient(hostname, port); this.Domain = hostname; this.Port = port; String response = this.GetResponse("Hello"); if (response.Substring(0, 3) == "220") { this.TcpConnected = true; } else { this.TcpConnected = false; throw new Exception("Es konnte keine Verbindung zum FTP-Server hergestellt werden!"); } } public void Close() { if (this.netStream != null) { this.netStream.Close(); this.netStream = null; } if (this.tcpClient != null) { this.tcpClient.Close(); this.tcpClient = null; } } public bool Login(String user, String pass) { this.User = user; this.Pass = pass; if (this.TcpLoggedin == true) { //schon verbunden return true; } if (this.TcpConnected == true) { this.GetResponse("USER " + this.User); this.GetResponse("USER " + this.User); String response = this.GetResponse("PASS " + this.Pass); if (response.Substring(0, 3) == "230") { this.TcpLoggedin = true; return true; } else { this.TcpLoggedin = false; throw new Exception("Login oder Password falsch!"); } } return false; } public String GetResponse(String command) { this.netStream = this.tcpClient.GetStream(); /* TODO: Hier Socket Fehler ... */ if (this.netStream.CanWrite) { Byte[] sendBytes = Encoding.UTF8.GetBytes(command); this.netStream.Write(sendBytes, 0, sendBytes.Length); } else { //cannot write this.netStream.Close(); return null; } if (this.netStream.CanRead) { Byte[] bytes = new Byte[this.tcpClient.ReceiveBufferSize]; this.netStream.Read(bytes, 0, this.tcpClient.ReceiveBufferSize); String returndata = Encoding.ASCII.GetString(bytes); this.netStream.Close(); return returndata; } else { //cannot read this.netStream.Close(); return null; } }
Leider funktioniert das noch nicht so richtig...
Der Connect (im Konstruktor) funktioniert. Beim Login gibt es aber dann eine Exception in der Zeile:Code :1
this.netStream = this.tcpClient.GetStream();
Ich habe die Vermutung, dass die Verbindung nach dem Connect irgendwie wieder zugemacht wird, ich weis nur nicht wo und warum.Der Vorgang ist für nicht verbundene Sockets unzulässig.
Kann mir jemand weiterhelfen?
Gruß
-
Hallo,
dein Client muss sich erst connecten zum Server bevor du dir den Stream holen kannst..
Das passiert nicht mit dem Konstruktor der Client Klasse.
MfG Turri
PS: Wenn ich helfen konnte, würde ich mich über ein Danke oder eine positive Bewertung freuen. :-)
-
03.08.11 14:40 #9
- Registriert seit
- Aug 2007
- Beiträge
- 329
HI,
danke für die Antwort. Ich dachte das connecten geschieht automatisch, wenn ich bei new TcpClient einen Hostnamen und Port angeben.
Werd ich morgen gleich mal ausprobieren...
Gruß
Ähnliche Themen
-
Berechtigungen auf Webserver
Von _Alex_ im Forum Hosting & WebserverAntworten: 1Letzter Beitrag: 04.04.11, 15:23 -
Access Berechtigungen
Von schieflo im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 17.05.06, 20:54 -
Berechtigungen bei Exchange
Von Robert Steichele im Forum NetzwerkeAntworten: 0Letzter Beitrag: 24.01.05, 19:37 -
Berechtigungen Rechte
Von tecme im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 11.06.04, 09:19





Zitieren
Login





