- NSIS Discussion
 - NSISdl again...
 
Archive: NSISdl again...
razor_x
29th July 2004 13:32 UTC
NSISdl again...
  Is there a way to pass username\pass info to NSISdl so it can authenticate on a server?If not this would be a handy feature.This seems like it should be a basic feature.
the usernamepassword@blahblah
mentioned in the docs doesnt work.
mumuri
29th July 2004 14:20 UTC
You can try to download via FTP.
http://forums.winamp.com/showthread....hreadid=186466
razor_x
29th July 2004 14:22 UTC
no im not downloading from an ftp..so this isnt an option.thxz though.
Joel
29th July 2004 14:52 UTC
mmm, did you try something like:
StrCpy $0 "user"
StrCpy $1 "pwd"
NSISdl::download "http://www.server.com/base.php?user=$0&pass=$1" ...
     
    
    
      razor_x
      29th July 2004 15:12 UTC
      yep thxz though.seems the plugin just cant handle it.
     
    
    
      razor_x
      29th July 2004 18:25 UTC
      has no one used this tool to download from a server that requires authorization? can ie cookie data be used somehow?
     
    
    
      j27lee
      30th July 2004 00:44 UTC
      Here you go:
      
      use NSISdl to download to a file like so:
      NSISdl::download /TIMEOUT=10000 "www.someurl.com?u=$1&p=$2" "$INSTDIR\result.txt"
      
      Pop $0
      #MessageBox MB_OK "result=$0"
      StrCmp $0 success success
      SetDetailsView show
      DetailPrint "download failed: $0"
      # MessageBox MB_ICONEXCLAMATION|MB_OK "download failed: $0"
      MessageBox MB_ICONEXCLAMATION|MB_OK "The installer was not able to register/log you in."
      Pop $1
      Pop $0
      GoTo finished
      #Abort
      
      --then check the result by reading in the file, in this case result.txt ->
      
      success:
      
      FileOpen $2 "$INSTDIR\result.txt" "r"
      FileRead $2 $1 ;read line one into $1
      FileClose $2
      Delete "$INSTDIR\result.txt"
      
      IntCmp $1 0 finished +1 not_authenticated
      MessageBox MB_ICONEXCLAMATION|MB_OK "The username you have chosen is already registered."
      Abort
     
    
    
      Afrow UK
      30th July 2004 12:04 UTC
      If you're using PHP, I seem to remember you need to specify the Content header length for it to work.
      
      This should help you:
      
      
<?php
ob_start();
>?>
>
...output page contents as usual...
<?php
># Make a Content-Length: header
>header('Content-Length: ' . ob_get_length());
>ob_end_flush();
>?>
-Stu
    
 
    
    
      razor_x
      31st July 2004 08:16 UTC
      ah thxz but "content header length" isnt the problem.I just need to be able to get it to authorize at the server...would be nice if cookie data could be used somehow...or if user\pass data could be sent in the url which it cant be it seems.
     
    
    
      kichik
      31st July 2004 11:19 UTC
      Downloading http://user:password@server/file works fine for me.
     
    
    
      razor_x
      31st July 2004 12:29 UTC
      what if server requires something other than "user" "pass".
      
      if it requires "username" password" or some other VARIABLE then what?
      
      some versatallity would be nice to add maybe.
     
    
    
      kichik
      31st July 2004 12:34 UTC
      Huh? Do you have an example? I don't understand what you want.
     
    
    
      razor_x
      31st July 2004 13:02 UTC
      my point is can we use IE cookie data since user/pass doesnt work on all servers...which it does not.Period.otherwise i wouldnt be here.ive used NSISdl for quite some time with success except for this.
     
    
    
      kichik
      31st July 2004 13:16 UTC
      I still don't understand which kind of authorization you want. I need an example. I can't help you without knowing the authorization method you're looking for. From your first message it looked like you wanted what I've first suggested, but then you started talking about variables which seems to suggest you're looking for what Lobo, j27lee and Afrow suggested. Can you specify exactly what you're looking for? An example will be most helpful.
     
    
    
      razor_x
      31st July 2004 13:37 UTC
      hmm i dont know how i can make this clearer...user\pass doesnt work for me because the server im dl from doesnt request "user"\"pass".It requires data availiable from cookies(which we seem to be avoiding)or other things such as "blahblahmember"/"blahblahpass" which i cant seem to send in a url.
     
    
    
      kichik
      31st July 2004 13:46 UTC
      OK, so it's cookies you want. NSISdl doesn't support cookies nor does it use Internet Explorer's cookies data. NSISdl only uses proxy information from Internet Explorer's registry key.
     
    
    
      razor_x
      31st July 2004 14:09 UTC
      ok well i guess ill just have to fix the plugin again(like i did for the content header length)thxz anyways..but just as a suggestion,the plugin should be more versatile.In it's current state it's very limited.1) you shouldnt get a failed dl just because the plugin cant get the size of the file for "dialogs".
      2)It should be more versatile to dl from more than just the simplest server set-ups.NSIS is an awesome tool,too bad it's hobbled by a weak dl plugin.thxz anyways.