Avatar billede neuro Nybegynder
10. marts 2003 - 14:37 Der er 5 kommentarer og
1 løsning

Applet methods via JavaScript

Jeg har en signed applet, som læser/skriver en fil på brugeres lokale harddisk. Det virker fint hvis jeg kalder metoderne internt i min applet. Men ideen er, at jeg skal kunne kalde dem fra JavaScript. Jeg kan også sagtens kalde metoderne, men jeg får følgende sikkerheds fejl:

"com.ms.security.SecurityExceptionEx[Unknown]: cannot access the file c:\test.txt".

Den metode som udfører handlingen ser således ud:

public int fwrite(String file,String key) {
           
            try {
               
                PrintWriter fp=new PrintWriter(new FileOutputStream("c:\\"+file),true);
                if (fp!=null) {
                    fp.print(key);
                    fp.close();   
                }
               
            } catch (IOException e) {
               
            }
           
            return 0;
                       
        }

Og jeg indsætter min applet i min HTML således:

<applet id="jrk" code="regkey.class" width=100 height=100>
<param name="cabbase" value="regkey.cab">
</applet>

Og kalder den fra java script:

<br><a href="java script:jrk.fwrite(test.txt,'TEST');">WRITE</a>

Nogen der ved hvordan jeg får det til at virke?????????
Avatar billede neuro Nybegynder
10. marts 2003 - 14:42 #1
Det er compilet og signet med Microsoft tools. Og det virker faktisk hvis jeg compiler og signer med Suns tools. Men det skal virke under Microsoft JVM, derfor skal deres værktøjer bruges.
Avatar billede zorci Nybegynder
10. marts 2003 - 14:43 #2
Du har ikke rettighed til at skrive på en brugers computer, jvf. Java Sandbox.

Kig eventuelt på dette link: http://www.javaworld.com/javaworld/jw-05-1997/jw-05-security.html
Avatar billede neuro Nybegynder
10. marts 2003 - 14:55 #3
Min applet ER som jeg skrev tidligere signed, så jeg burde jo have rettigheder til at skrive på brugerens computer, og det virker også hvis jeg kalder min applet methods internt i min applet, men det virker ikke når jeg gør det via JavaScript.
Avatar billede zorci Nybegynder
10. marts 2003 - 14:59 #4
Jeg så først din kommentar om at den var signed, efter jeg skrev mit svar.

Rigtigt, hvis den er signed og du har accepteret den bør du kunne gøre det. Kan ikke lige gennemskue om hvad det så er. Din kode ser fin nok ud.
Avatar billede neuro Nybegynder
10. marts 2003 - 15:25 #5
Har selv fundet svaret! Der skulle selvfølgelig, som altid med Microsoft, tilføjes kode som de selv har fundet på:

try {
                    if (Class.forName("com.ms.security.PolicyEngine")!=null) {
                        PolicyEngine.assertPermission(PermissionID.FILEIO);
                    }
               
                } catch (ClassNotFoundException e) {
                   
                }

De kan aldrig holde standarderne!!! Men nu virker det!
Avatar billede zorci Nybegynder
10. marts 2003 - 15:26 #6
Kanon. Tillykke med det. :o)
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