Avatar billede DonSkoD Juniormester
01. marts 2012 - 13:16 Der er 12 kommentarer og
1 løsning

Java - forbind til UNC-sti med legitimationsoplysninger

Hej eksperter..

Jeg har overvejet at kode et simpelt program i Java, som vores elever kan benytte til at forbinde til deres netdrev samt printer.

Programmet skal bestå af en form med et tekstfelt (brugernavn), passwordfelt (password) og en button (forbind).

Når brugeren så har indtastet sit brugernavn samt password, skal den forbinde til serveren ved at trykke på knappen.

Så den skal forbinde til:
\\filserver\elever\<brugernavn>
\\printserver\printer

Er der en ekspert, som kan pege mig i den rigtige retning mht. koden, som skal bruges under "buttonactionperformed" - er det muligt at fyre sådan en UNC-sti af?

(Jeg er nybegynder til Java).
Avatar billede arne_v Ekspert
02. marts 2012 - 03:41 #1
NET USE \\server\share /USER:user password

udfoert via Runtime.exec ?
Avatar billede DonSkoD Juniormester
02. marts 2012 - 10:07 #2
Jeg har oprettet følgende:

private void KnapActionPerformed(java.awt.event.ActionEvent evt) {
  try {
  String command = "c:\windows....."
  Process p = Runtime.getRuntime().exec(command);
  }
  catch (IOException e) {
  System.out.println("Fejl");
  e.printstacktrace();
  }
}

Jeg benytter NetBeans til at kode i, men jeg får røde savtakker (fejl) under "IOException" - har du en ide til hvad der kan være galt?
Avatar billede DonSkoD Juniormester
02. marts 2012 - 10:30 #3
Nevermind - jeg er da vidst en nybegynder hehe ;-/

Glemte import java.io.IOException
Avatar billede DonSkoD Juniormester
02. marts 2012 - 11:22 #4
Hmm.. jeg kan godt nok ikke få det til at virke :/
Har du et forslag til hvordan det skal skrives?

Jeg skal oprette forbindelse til:

\\server\elever$\eleven

Skrev koden:

String command = "c:\\windows\\system32\\net.exe use h: \\\\server\\elever$\\" + TextField.getText() + " /user:domain\\" + TextField.getText() + " " + PasswordField.getPassword();

Process p = Runtime.getRuntime().exec(command);


TextField er brugernavn
PasswordField er kodeordet

Jeg har også forsøgt med .toString() efter getText() og getPassword()..
Avatar billede DonSkoD Juniormester
02. marts 2012 - 12:43 #5
Det ser ud til at det er den der PasswordField.getPassword().ToString(), som driller..

Jeg går ud fra at det er fordi teksten i et PasswordField er skjult, og derfor ikke kan konverteres til String - men hvad gør man så?

Jeg har forresten tilføjet et "Text Area" til min form, som skal vise status. Den står med status "Klar", når eleven åbner programmet, og jeg har sat en fejl-tekst for den der IOException - Men jeg kunne godt tænke mig at den viser en meddelelse, hvis alt går godt. Hvordan skal jeg få den kringlet? Er det noget med at smide koden ind i en "IF"-statement?

Mvh.
Søren
Avatar billede arne_v Ekspert
02. marts 2012 - 14:35 #6
proev new String(PasswordField.getPassword()) fremfor PasswordField.getPassword().ToString()
Avatar billede DonSkoD Juniormester
02. marts 2012 - 14:56 #7
Det ser ikke ud til at virke ;/

Men jeg endte med at skrive PasswordField.getText().toString();, selvom det nok ikke er den "korrekte måde" at gøre det på.

Smid endeligt et svar hvis du vil have points ;)
Avatar billede arne_v Ekspert
02. marts 2012 - 16:15 #8
ok

det virker nu?
Avatar billede DonSkoD Juniormester
03. marts 2012 - 21:26 #9
Jeps, det virker hvis jeg bruger PasswordField.getText().toString();

Der er dog en streg over getText() i min IDE, men jeg går ud fra at det er fordi at rent kodemæssigt er det ikke den korrekte måde at gøre det på heh.. men det betyder ikke noget for præcist dette program.

Jeg mangler dog stadig at få oprettet kommandoen til at forbinde printeren - net use dur vidst ikke i denne sammenhæng. Her skal jeg bruge kommandoen "start" - altså start \\printserver\printer, før printdriveren installeres. Problemet er så bare at serveren spørger efter legitimationsoplysninger.. så den skal jeg lige have kringlet.
Avatar billede arne_v Ekspert
03. marts 2012 - 21:40 #10
new String(PasswordField.getPassword())

burde virke
Avatar billede DonSkoD Juniormester
06. marts 2012 - 08:50 #11
Jeps, nu fik jeg den til at virke :)
Avatar billede DonSkoD Juniormester
06. marts 2012 - 13:33 #12
Men du skulle vel ikke vide hvordan jeg afbryder netdrev, som allerede er oprettet?

net use h: /delete

Ser ikke ud til at virke
Avatar billede arne_v Ekspert
06. marts 2012 - 14:57 #13
det boer virke
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester