Newsgroup: it.comp.lang.visual-basic
Titolo: Mappare Drive

Buona giornata.
Oggetto:
Sviluppo un applicativo MultiClient che gira in Lan aziendale che esegue una
gestione
utenti personalizzata non attinente con quella di WinNT.
L'applicativo accede in Scrittura(per gli utenti abilitati) su una Cartella
del Server.
Il problema è che l'azienda è ampia e l'utente X(abilitato) potrebbe dover
accedere
all'applicativo da una postazione di un collega non abilitato.
Ovviamente riavviando la stazione come altro utente tutto funziona, ma
sinceramente
la trovo una cosa poco prarica.
Ora vengono i miei dubbi e problemi:
Pensavo di Mappare(dopo aver verificato l'impossibilità di accedere in Write
sul Server) la risorsa di Rete(cartella del Server) passando User e Passord
di un utente abilitato creato appositamente per questa esigenza sfruttando
la chiamata API WNetAddConnection2.
Ho fatto un test dal mio PC passando la mia User e Passwod(io sono
abilitato)
e la mappatura aviene in modo corretto.
Se eseguo il tentativo da un'altro PC passando sempre i miei dati di Login
mi viene restituito un errore di Conflitto tra i privilegi dell'attuale
utenteLoggato
ed il mio tentativo di Mapping.
Quì mi sono bloccato in quanto non capisco se stò facendo una porcata(di
conseguenza
vi sarei grato se mi indicaste un modo per risolvere il problema) oppure se
stò semplicemente
commettendo un errore banale.
Leggendo miliardi di Post in Rete parrebbe tutto corretto, ma non funziona.
Allego, anche se penso superfluo, il codice di Mapping(di Randy Birch)
che chiamo in questo modo:
MapLabel=ConnectNextFreeNetworkDrive("\NomeServer\NomeCartella")
Public Function ConnectNextFreeNetworkDrive(sServer As String) As String
   Dim NETR As NETRESOURCE
   Dim errInfo As Long
   Dim x As Long
   Dim testDrv As String
   x = 67
   Do
      x = x + 1
      testDrv = Chr$(x) & ":"
      With NETR
         .dwScope = RESOURCE_GLOBALNET
         .dwType = RESOURCETYPE_DISK
         .dwDisplayType = RESOURCEDISPLAYTYPE_SHARE
         .dwUsage = RESOURCEUSAGE_CONNECTABLE
         .lpRemoteName = sServer
         .lpLocalName = testDrv
      End With
      errInfo = WNetAddConnection2(NETR, _
                                   "MyPWD", _
                                   "DOMINIO\username", _
                                   CONNECT_UPDATE_PROFILE)
   Loop Until x = 90 Or errInfo = ERROR_SUCCESS   '90 = "z"
   If errInfo = ERROR_SUCCESS Then
      ConnectNextFreeNetworkDrive = testDrv
   Else
      ConnectNextFreeNetworkDrive = "NONE"
   End If
End Function
Ringrazio per l'aiuto.
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

 ed il mio tentativo di Mapping.
AFAIK, non c'e` storia, Windows non permette di connettersi alla
stessa macchina con piu` di una login per volta.
Dovresti prima disconnettere l'utente corrente dalla risorsa
remota, quindi fare la tua connessione ed alla fine ripristinare
la connessione originaria.
Oppure cambi sistema operativo :-PPP
-- 
ciao, hal

 ha scritto nel messaggio
news:8iOie.3715$Jd....@tornado.fastwebnet.it...

Ciao hal.
Avevo avuto questo sospetto, infondo l'errore segnalava proprio questo.
Ora 2 domande.
1)Il sistema operativo verrà cambiato tra qualche mese, passeremo da
   WinNT a Windows2000Server, in questo caso sarà possibile...?
2)Eventualmente per sconnettere l'utente e potermi connettere
   automaticamente in modo adeguato(anche se mi pare poco pulito) puoi darmi
   qualche indicazione...?
Grazie.
Alessandro Baraldi


Per Loggare un'altro utente ho trovato questo codice:
http://vbnet.mvps.org/code/network/netusersetinfo_accountdisable2.htm
Sta di fatto che poi per ripristinare il precedente dovrei aver salvato
la sua Password, lo USER non sarebbe un problema recuperarlo....!
-- 


Cazzeggiavo, quel demo fa tutto quello che serve.
;-)
