Funzione NPAddConnection3 (npapi.h)

La funzione NPAddConnection3 connette un dispositivo locale a una risorsa di rete. Esegue la stessa operazione di NPAddConnection , ma consente inoltre di specificare un handle per la finestra che deve essere proprietaria di tutte le finestre di dialogo risultanti e specificare come deve essere stabilita la connessione.

Sintassi

DWORD NPAddConnection3(
  [in] HWND           hwndOwner,
  [in] LPNETRESOURCEW lpNetResource,
  [in] LPWSTR         lpPassword,
  [in] LPWSTR         lpUserName,
  [in] DWORD          dwFlags
);

Parametri

[in] hwndOwner

Handle di una finestra che deve essere proprietaria di qualsiasi messaggio o finestra di dialogo. Questo handle è valido solo se CONNECT_INTERACTIVE è impostato in dwFlags e l'handle deve essere usato solo per produrre le finestre di dialogo necessarie per l'autenticazione.

[in] lpNetResource

Puntatore a una struttura NETRESOURCE che specifica la risorsa di rete a cui connettersi. Quando si effettua una connessione, è necessario impostare i campi seguenti. Gli altri vengono ignorati.

Valore Significato
lpRemoteName
Specifica la risorsa di rete a cui connettersi.
lpLocalName
Specifica il nome di un dispositivo locale da reindirizzare, ad esempio "F:" o "LPT1". Questo nome viene considerato senza distinzione tra maiuscole e minuscole e può essere la stringa vuota o il puntatore NULL . Se la stringa è vuota o NULL, la funzione si connette alla risorsa di rete senza effettuare un reindirizzamento.
dwType
Specifica il tipo di risorsa a cui connettersi. Può essere RESOURCETYPE_DISK, RESOURCETYPE_PRINT o RESOURCETYPE_ANY. Il valore RESOURCETYPE_ANY viene utilizzato se il chiamante non è importante o non sa.

[in] lpPassword

Puntatore alla password da usare per stabilire la connessione, in genere la password associata a lpUserName. È possibile passare il valore NULL per fare in modo che la funzione usi la password predefinita. È possibile usare una stringa vuota per indicare che non è stata specificata alcuna password. Dopo aver terminato di usare la password, cancellarla dalla memoria chiamando la funzione SecureZeroMemory . Per altre informazioni sulla protezione della password, vedere Gestione delle password.

[in] lpUserName

Puntatore al nome utente usato per stabilire la connessione. Se NULL, viene applicato il nome utente predefinito (quello dell'utente attualmente connesso). Viene usato quando l'utente vuole connettersi a una risorsa, ma ha un nome utente o un account assegnato diverso per tale risorsa.

[in] dwFlags

Qualsiasi combinazione dei valori seguenti. Il provider deve ignorare tutti gli altri bit di dwFlag che possono essere impostati.

Valore Significato
CONNECT_TEMPORARY
La connessione viene stabilita a scopo di esplorazione e probabilmente verrà rilasciata rapidamente.
CONNECT_INTERACTIVE
La connessione può avere interazione con l'utente a scopo di autenticazione.
CONNECT_PROMPT
Non usare valori predefiniti per i nomi utente o le password senza offrire all'utente la possibilità di fornire un'alternativa. Questo flag è valido solo se è impostato anche CONNECT_INTERACTIVE.
CONNECT_DEFERRED
Non eseguire alcuna operazione di rete remota per stabilire la connessione di rete; ripristinare invece la connessione in uno stato "disconnesso". Tentare la connessione effettiva solo quando alcuni processi tentano di usare la connessione. Se questo bit è impostato, il chiamante deve fornire lpLocalName.

Questa funzionalità viene usata per velocizzare il ripristino delle connessioni di rete all'accesso. Provider che lo supporta deve restituire il bit WNNC_CON_DEFERRED in NPGetCaps.

Valore restituito

Se la funzione ha esito positivo, restituirà WN_SUCCESS. In caso contrario, restituirà un codice di errore. Questo può includere uno dei seguenti elementi.

Codice restituito Descrizione
WN_BAD_NETNAME
Il valore del membro lpRemoteName della struttura passata in lpNetResource non è valido per questo provider.
WN_BAD_LOCALNAME
Il valore del membro lpLocalName della struttura passata in lpNetResource non è valido.
WN_BAD_PASSWORD
La password specificata non è valida.
WN_ALREADY_CONNECTED
Il dispositivo specificato nel membro lpLocalName della struttura passata in lpNetResource è già connesso.
WN_ACCESS_DENIED
L'autorizzazione per stabilire la connessione viene negata.
WN_NO_NETWORK
La rete non è presente.
WN_CANCEL
Il tentativo di effettuare la connessione è stato annullato dall'utente utilizzando una finestra di dialogo visualizzata dal provider.

Commenti

Se un provider visualizza una finestra di dialogo password perché le credenziali specificate non sono sufficienti e il flag di CONNECT_INTERACTIVE è impostato, il provider potrebbe non restituire un codice di errore di accesso negato (uno dei ERROR_LOGON_FAILURE, WN_BAD_PASSWORD WN_ACCESS_DENIED). Il comportamento suggerito è che il provider continui a chiedere all'utente le credenziali valide fino a quando l'utente non le fornisce o preme un pulsante "annulla". Se NPAddConnection3 viene chiamato per effettuare la connessione richiesta durante la funzione WNetConnectionDialog o WNetConnectionDialog1 e viene restituito un codice di accesso negato, la funzione WNetConnectionDialog o WNetConnectionDialog1 visualizza una finestra di dialogo con password.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione npapi.h

Vedi anche

NPAddConnection