27 messaggi dal 17 maggio 2005
Salve a tutti, ho il seguente problema:

Dovrei verificare la raggiungibilità di alcune macchine sulla intranet tramite una apposita funzione nella mia web application,
la mia idea era stata quella di usare la classe System.Diagnostics.Process() per creare un mio processo, chiamare il processo net.exe e passargli i parametri use \\ipmacchina , di solito quando uno fa la net use dovrebbe passare anche i seguenti argomenti 'password /USER:dominio\utente', questo a meno che l'utente che lancia il processo non sia diciamo riconosciuto dalla macchina sottoposta alla net use;
Ho quindi usato l'Impersonification dato che senza effettuare questo passo, l'utente che lancerebbe il processo sarebbe ASPNET (ovviamente non abilitato), il problema è che mi chiede comunque l'utenza e password,
premetto che essendo loggato sul pc dal quale sviluppo con lo stesso utente del quale faccio l'Impersonification, facendo la net use da Prompt senza dargli nome utente dominio e password tutto funziona correttamente.
COME E' POSSIBILE???, perchè se lo lancio da DOTNET non capisce che sono un utente 'abilitato' e la stessa istruzione da Prompt funziona??? dove sbaglio???

Spero di essere stato chiaro.

Vi ringrazio in anticipo

LA RISPOSTA E' DENTRO DI TE.........
PURTROPPO PERO' E' QUELLA SBAGLIATA.......
Come hai utilizzato l'impersonation?

- Web.config?
- Principal?
- Win32 API?
- etc....
27 messaggi dal 17 maggio 2005
System.Security.Principal.....
perchè??

LA RISPOSTA E' DENTRO DI TE.........
PURTROPPO PERO' E' QUELLA SBAGLIATA.......
Scusa il ritardo della risposta.....ho fatto un pò di test.
Per la verità non conta molto il tipo di impersonation che fai.

Mi spiego meglio.

La sezione impersonate del web.config ele classi Principal servono appunto per impersonare un utente.....ma cosa fanno?

Quanto tu crei un nuovo processo, questo prende l'identity del processo che lo ha lanciato.....ma non il thread che lo ha lanciato.
In pratica quando si impersona un utente cambia l'identity del Thread corrente (nota bene Thread) e non del processo.
Il WP di asp.net rimane lo stesso ed è quello definito all'interno del machine.config.

Ho fatto un test con le Win32 tramite PInvoke pensando che avrebbe fatto cambiare il processo a runtime.....ma non era così (quindi non considerare il post precedente).

sono riuscito invece a farlo funzionare aggiungendo al web.config il nodo


<processModel  userName="utente" password="pwd" />



logicamente configurato con un utente che abbia i giusti privilegi.

Spero dia verti aiutato
27 messaggi dal 17 maggio 2005
Ti ringrazio per l'aiuto ora vedrò un atttimo il da farsi, dato che non posso mettere la password in chiaro nel web.config, cmq grazie e a buon rendere.

LA RISPOSTA E' DENTRO DI TE.........
PURTROPPO PERO' E' QUELLA SBAGLIATA.......
Potresti in ogni caso mettere le credenziali criptate nel registro di configurazione. Apri l'MSDN library e cerca <processoModel> nell'indice, ti spiega come fare.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.