Degeim Skrevet 25. april 2007 Del Skrevet 25. april 2007 Heisann! Jeg arbeider for tiden med et større program som har behov for å hente og laste opp informasjon til en server. Det som skal hentes er: a) Lister over brukere med passord, slik at jeg kan sjekke om brukeren er på brukerlisten og eventuelt kontrollere at det er riktig passord b) Informasjon om hvilke filer som skal lastes ned til denne brukeren c) Filer brukeren trenger Og følgende skal lastes opp: a) Filer fra brukeren til spesielle mapper for denne brukeren b) XML-filer med varierende størrelse (vil anta at normal størrelse er 5-100kb) c) Nye versjoner av filen omtalt i første b), som nå inneholder andre filer enn før Det er altså kun filer som skal sendes til og fra serveren. Men det forekommer meg at dette er en utrygg måte å gjøre det på. For det første kan hvem som helst nå feks bruke Reflector og lese ut all tilkoblingsinformasjon for FTP-serveren og dermed stikke innom og gjøre hva han vil. Jeg regner også med det er diverse måter å snappe opp filene, feks de med brukernavn og passord til alle brukerne, når programmet mitt laster dem ned for å sammenligne. Hva jeg lurer på: Jeg vet det finnes greier somn kan installeres på serveren slik at den kan kjøre noe som er laget i Visual Studio, forhåpentligvis VB .Net siden det er det jeg kan, og som på denne måten skal kunne kommunisere mye mer direkte med programmet mitt, slik at jeg i stedet for å laste ned brukerlister og sammenligne bare sender påloggingsdataene til serveren, og så foretar den sammenligningen, og jeg håper også å kunne sende større mengder med data (omtalte XML-filer på 5-100kb) til og fra server. På den måten kan ingen snappe opp påloggingsinformasjonen uten å komme inn på serveren, og det vil jo også være vanskelig, siden jeg heller ikke trenger lagre FTP-informasjon i programmet. Tar jeg helt feil, eller er det noe slikt? Jeg mener å ha lest om det, men aner ikke hvordan jeg skal finne ut av hva jeg mener, siden jeg ikke vet hva det heter. Regner med det er et veldig enkelt spørsmål for dem som vet det (har en anelse om at "Manfred" bruker denne greia). Takk, Degeim Lenke til kommentar
Manfred Skrevet 25. april 2007 Del Skrevet 25. april 2007 Heisann, Jeg så navnet mitt være nevnt Det du kan lage på serveren din er jo en vanlig standard "form" som kan ta imot filer. via en vanlig HTTP POST (på samme måte som om du skulle hatt en filopplastings-sak i et skjema. For å laste opp fra programmet bruker du da System.Net.WebClient.UploadData("http://minadresse", "POST", minData); hvor "minData" er en byte array inneholdende dine data. Noe slikt du tenkte på? Lenke til kommentar
Bigbagaroo Skrevet 25. april 2007 Del Skrevet 25. april 2007 Skal du bruke http til å overføre, så kunne du jo også bruke SSL mellom klient/tjener. Lenke til kommentar
Degeim Skrevet 25. april 2007 Forfatter Del Skrevet 25. april 2007 (endret) Jeg tenkte på noe slikt som det Manfred omtaler her: Link til forholdsvis ny uttalelse Lurer på om det kan være ASP.net jeg snakker om? Men det er kanskje noe helt annet... Endret 25. april 2007 av Degeim Lenke til kommentar
j000rn Skrevet 25. april 2007 Del Skrevet 25. april 2007 (endret) Rart ingen har nevnt webservices... Det er jo det som er hot og trendy og moderne og tøft og bra for tiden Endret 25. april 2007 av jorn79 Lenke til kommentar
Manfred Skrevet 25. april 2007 Del Skrevet 25. april 2007 Jeg er litt anti webservices... Har fått de litt opp i halsen. Jeg foretrekker å lage mine egne API Lenke til kommentar
j000rn Skrevet 25. april 2007 Del Skrevet 25. april 2007 Jeg er litt anti webservices... Har fått de litt opp i halsen. Jeg foretrekker å lage mine egne API 8472031[/snapback] I know Til filer er webservices litt dårlig også... MYE overhead. Selv om man kan skru på compression på IIS. Lenke til kommentar
Degeim Skrevet 25. april 2007 Forfatter Del Skrevet 25. april 2007 Rart ingen har nevnt webservices... Det er jo det som er hot og trendy og moderne og tøft og bra for tiden 8471874[/snapback] Er det egen API du har laget i posten jeg linket til? Hva gjør jeg i så fall for å få den til å kommuniser med en webserver? Er det enkelt og greit bare en privat server med kjørende program som kommuniserer via Winsock eller lignende med programmet ditt? Lenke til kommentar
j000rn Skrevet 25. april 2007 Del Skrevet 25. april 2007 Webservices kan du enkelt lage med .Net. Det er egentlig vanlige websider men du lager funksjoner som kan bli kjørt av klienten. Webservices kjører som en vanlig webapplikasjon i IIS. http://www.google.no/search?q=webservices+...lient=firefox-a "API" et følger med .Net rammeverket. Webservices er en standard. Slik at webservice'n du lager kan brukes av andre om du ønsker det. Kan enkelt implementeres i .Net og Java, mens andre språk gjerne har tredjeparts bilioteker for å bruke webservices. Lenke til kommentar
Manfred Skrevet 25. april 2007 Del Skrevet 25. april 2007 API'et mitt kjører bare HTTP POST opp mot serveren, som returnerer XML-er tilbake til applikasjonen min. Har skrevet alt selv, ja. Lenke til kommentar
alftore Skrevet 26. april 2007 Del Skrevet 26. april 2007 Jeg er enig om at Web services er elendig når det kommer til performance. Alt for mye overhead, men er ikke alltid dette er et problem. Kommer jo an på hva du skal bruke de til. Alternativt kan du jo skru på HTTP POST og GET støtte i config fila. Ulempen med POST og GET er at den ikke støtter annet en helt enkle variabel typer som string, int, long etc. Et annet alternativ er å se på XML-RPC (http://www.xmlrpc.com) som er litt mer "lightweight". Er det noe jeg ikke kan fordra er det å integrere mot firmaer som benytter seg av egendefinerte APIer, som ikke har noen konsekvent måte å håndtere f.eks en feilmelding på. Ofte mangler det også på oppdatert dokumentasjon og endringer kommer fortløpende som bryter med ting de har sagt tidligere. Lenke til kommentar
Manfred Skrevet 26. april 2007 Del Skrevet 26. april 2007 En annen ting er å forholde seg til mine API som alltid følger en standard, og som jeg alltid har oppdatert dokumentasjon liggende på POST har jo støtte for filopplasting da, strengt tatt. Hvordan laster du ellers opp filer på en webside? Lenke til kommentar
Bigbagaroo Skrevet 27. april 2007 Del Skrevet 27. april 2007 (endret) Man kan også bruke WebDAV, PUT, webservice attachments og andre standard måter å overføre filer på. Inntil man trenger ekstrem ytelse, så er det å gjøre ting i forhold til standarder som det finnes ferdige API for å bruke det beste og enkleste. (Liten fotnote: Jeg er ganske enig med posteren over som irriterer seg over egenrullede API-er. Det mest ekstreme eksempelet jeg har vært borte i var en server som skulle ta i mot EDIFACT-meldinger via en C-applikasjon på en IBM-boks. Programmereren som var ansvarlig for API-et var nå på fottur i India (de to siste årene) og det eneste som var av dokumentasjon var en kopi av en fax-melding. Tjenesten døde selvsagt hvis en sendte noe feil, og måtte da drepes og restartes.) Endret 27. april 2007 av Bigbagaroo Lenke til kommentar
Manfred Skrevet 27. april 2007 Del Skrevet 27. april 2007 EDIFACT er vel ganske standardisert? Trodde det var hele poenget med EDIFACT jeg... Omtrent han jeg overtok et gammelt system etter, som dro til Afrika for å lære afrikanere å bruke PC. Lenke til kommentar
Degeim Skrevet 28. april 2007 Forfatter Del Skrevet 28. april 2007 Jeg har funnet ut at jeg - i alle fall foreløbig - vil beholde FTP-delen av programmet for overføring av filer, men vil ikke lagre FTP-informasjonen i programmet. Derfor tenker jeg å lage en PHP-løsning, der jeg i form av en POST sender brukernavnet og passordet til den som prøver å logge seg på til PHP-filen min, lar filen sammenligne med lister den har, og eventuelt spytte ut FTP-informasjonen som programmet da kan lese av. Er dette en nogenlunde sikker måte å gjøre det på, eller er den som en sveitsisk ost? Takk, Degeim Lenke til kommentar
Manfred Skrevet 28. april 2007 Del Skrevet 28. april 2007 Hvis den da spytter ut ftp-informasjon og samtidig stenger den accounten for andre IP'er enn den som sendte requesten... Da blir det litt sikrere i alle fall.. Lenke til kommentar
Degeim Skrevet 28. april 2007 Forfatter Del Skrevet 28. april 2007 (endret) Ok, det var litt verre i praksis enn i teorien. EDIT: Jeg fikk det til (tatt rett ut av MSDN)! Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim uriString As String = "http://adresse/fil.php" ' Create a new WebClient instance. Dim myWebClient As New System.Net.WebClient() Dim postData As String = "datasomskalsendes" myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded") ' Apply ASCII Encoding to obtain the string as a byte array. Dim byteArray As Byte() = System.Text.Encoding.ASCII.GetBytes(postData) ' Upload the input string using the HTTP 1.0 POST method. Dim responseArray As Byte() = myWebClient.UploadData(uriString, "POST", byteArray) ' Decode and display the response. MsgBox(System.Text.Encoding.ASCII.GetString(responseArray)) End Sub Takk, Degeim Endret 28. april 2007 av Degeim Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå