28 messaggi dal 09 giugno 2001
Ciao,
esiste un modo per lanciare un applicazione residente su server da una pagina ASP.NET?

In ASP ho visto che è possibile farlo istanziando WSH e utilizzando i suoi metodi...
In ASP.NET esiste una classe che faccia tutto ciò o devo passare tramite Interop e istanziare WSH?

grazie

Se un uomo ha fame, non dargli il pesce insegnagli a pescare.
Usa la classe Process (System.Diagnostics)
con il metodo statico Start.
Poi dipende da quello che devi fare.

Ciao

Il mio blog
Homepage
11.886 messaggi dal 09 febbraio 2002
Contributi
Ho usato il metodo .Start() però c'è qualcosa che no va...
se guardo nel task manager vedo che il processo viene lanciato correttamente, però non compare niente: nè l'icona sulla barra delle applicazioni nè la finestra.
Ho provato anche in questo modo:

Dim proc As New System.Diagnostics.ProcessStartInfo("C:\WINDOWS\NOTEPAD.EXE")
proc.CreateNoWindow = false
proc.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized
System.Diagnostics.Process.Start(proc)

le proprietà CreateNoWindow e WindowStyle sembra che non abbiano effetto :(


Modificato da BrightSoul il 15 gennaio 2004 13.27 -

Enjoy learning and just keep making
Beh, succede perché lo lanci da un servizio window e da un utente ASPNET. Non puoi lanciare l'applicazione sulla sessione di un altro utente (amministratore e non).

Ciao

Il mio blog
Homepage
11.886 messaggi dal 09 febbraio 2002
Contributi
ahhh capisco...
siccome occasionalmente mi si intoppa mysql, volevo poterlo riavviare semplicemente facendo una richiesta HTTP ad una pagina.
Devo eseguire:
NET STOP mysql
oppure
un exe che ho preparato e che esegue lui il comando.

Quindi non è possibile in alcun modo arrestare un servizio dell'utente amministratore usando l'utente ASPNET ?
Eppure giuravo di aver visto in post passati che qualcuno con asp classico cercava di aprire la calcolatrice (per esempio) sul client e invece gli veniva aperta sul server.
Come potrei risolvere?
Grazie, ciao :)

Enjoy learning and just keep making
Certo, l'exe si lancia sul server ma non con l'account giusto, o lo metti come amministratore, ma non è il massimo, anzi non farlo oppure limitati a impersonificare un utente amministratore solo per quella pagina. Trovi dei post qua sopra e in giro su come impersonificare da codice

Ciao

Il mio blog
Homepage
11.886 messaggi dal 09 febbraio 2002
Contributi
grazie mille, ora è più chiaro.
Avrei bisogno di un'ultima delucidazione:

Al momento di impersonare l'utente ho bisogno di crearmi un'istanza di System.Security.Principal.WindowsIdentity passando un token al costruttore.
In un sito ho letto che:

Framework does not provide any means of getting security access token of a user other than the one who is already authenticated.

Ma quello che mi interessa, l'amministratore, si è già autenticato all'avvio di windows quindi dovrei essere in grado di recuperare il token senza ricorrere alle API. Come faccio?

In pratica vorrei evitare di chiedere la password all'amministratore.




Enjoy learning and just keep making
Eh non puoi. Che sicurezza sarebbe se un utente con restrizioni potesse accedere al toker di sessione di un amministratore già loggato. Comunque, al di là del fatto che devi chiedere la password (c'è un post dove parlavo su come fare l'autenticazione tramite API), non è detto che l'amministratore sia loggato, specialmente in un server. I windows service sono indipendenti dagli accessi all'os.

Ciao

Il mio blog
Homepage

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.