Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Problemi a settare l'ip con applicazione web
venerdì 30 gennaio 2004 - 10.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
angela
Profilo
| Newbie
27
messaggi | Data Invio:
ven 30 gen 2004 - 10:33
Ho creato una web form che dovrebbe cambiare l'indirizzo ip, la subnet mask ed il gateway della macchina con i nuovi valori che inserisco in delle textBox.
Il mio problema è che non varia nessun valore!
Ho provato a fare il tutto con una win form è funziona correttamente, come mai?
Metto di seguito il codice così vedete come ho fatto e vi prego di aiutarmi!!
Grazie!
private void Page_Load(object sender, System.EventArgs e)
{
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach(ManagementObject objMO in objMOC)
{
if(!(bool)objMO["ipEnabled"]) continue;
string[] ipaddresses = (string[]) objMO["IPAddress"];
string[] subnets = (string[]) objMO["IPSubnet"];
string[] gateways = (string[]) objMO["DefaultIPGateway"];
}
}
public void setrete(string IPAddress,string SubnetMask, string Gateway)
{
if((IPAddress!="") && (SubnetMask!="") && (Gateway!="")) {
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach(ManagementObject objMO in objMOC)
{
if (!(bool) objMO["IPEnabled"]) continue;
try
{
ManagementBaseObject objNewIP = null;
ManagementBaseObject objSetIP = null;
ManagementBaseObject objNewGate = null;
objNewIP = objMO.GetMethodParameters("EnableStatic");
objNewGate = objMO.GetMethodParameters("SetGateways");
objNewGate["DefaultIPGateway"] = new string[] {Gateway};
objNewGate["GatewayCostMetric"] = new int[] {1};
objNewIP["IPAddress"] = new string[] {IPAddress};
objNewIP["SubnetMask"] = new string[] {SubnetMask};
objSetIP = objMO.InvokeMethod("EnableStatic",objNewIP,null);
objSetIP = objMO.InvokeMethod("SetGateways",objNewGate,null);
Label1.Text= "Impostazioni di rete modificate correttamente ";
}
catch(Exception ex)
{
Label1.Text= "Non è stato possibile modificare le impostazioni della scheda di rete : " + ex.Message;
}
}
}
else {
Label1.Text="Valori impostati non validi";
}
private void settarete_Click(object sender, System.EventArgs e)
{
string ipaddress, subnet, gateway;
ipaddress=ip.Text+"."+ip2.Text+"."+ip3.Text+"."+ip4.Text;
gateway=gw.Text;
subnet=sb.Text;
setrete(ipaddress,subnet,gateway);
}
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 30 gen 2004 - 19:04
Mi pare stai usando WMI per modificare le impostazioni vero?
Beh, forse dall'applicazione Web Form non è possibile perchè viene eseguita con l'utente particolare \ASPNET che magari non può fare certe cose (nel ns. caso cambiare l'IP di un'altra macchina).
Secondo me potresti tentare di attivare l'impersonation di ASP.NET e simulare un utente vero e proprio tipo l'Administrator della macchina e vedere se te li cambia.
Mentre per l'applicazione WinForm l'utente con cui gira è quello loggato in quel momento (ti ricordo che l'utente ASPNET è molto particolare).
ciao
david
19018
Profilo
| Expert
502
messaggi | Data Invio:
sab 31 gen 2004 - 13:31
Ciao,io ho fatto un programma che svolge le stesse funzioni della tua winform,ho usato anche io le WMI ma solo per recuperare i valori che mi interessavano,infatti se non ricordo male sono solo readonly!Forse è per questo che non modifica nulla!Per modificare le impostazioni,non conoscendo altri metodi, ho dovuto usare il registro.La chiave è questa :
HKEY_LOCAL_MACHINE\System\ControlSet001\Service\<ID univoco della scheda di rete>\Parameters\Tcpip
Ad esempio <ID univoco della scheda di rete> = {99C453B0-FBA4-44B4-A63B-86083A26B4B9}
Gli stessi parametri vengono ripetuti anche in altre chiavi ma a te interessa essenzialmente la chiave di sopra!
Se decidi di usare il registro e qualcosa non ti è chiaro sono a tua disposizione!
ciao Stefano
angela
Profilo
| Newbie
27
messaggi | Data Invio:
lun 2 feb 2004 - 10:29
Come faccio ad usare impersonate?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 2 feb 2004 - 11:40
Ciao,
prova a leggere qui, è necessario modificare leggermente il web.config:
http://msdn.microsoft.com/library/en-us/cpguide/html/cpconaspnetimpersonation.asp
ciao
david
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !