Interrogare WMI da Asp.Net

martedì 23 ottobre 2007 - 14.54

maxves Profilo | Newbie

Salve Ragazzi,
Come posso interrogarte il WMI della macchina che sta navigando le mie pagine.

Ho questa necessita per discriminare l'accesso solo a determinati nomi macchina ed associarne le funzionalità.

Grazie

MaXiM

pozzoli.samuele Profilo | Senior Member

Mi sa che devi rimettere un pochino a posto l'italiano della domanda...

E' lunico modo che hai di riconoscere la macchina che sta entrando? Non puoi con l'IP?

Prova a valutare la possibilità di identificare l'utente solo la prima volta e mettere un cookie... Magari con scadenza molto prolungata.

La prima identificazione non è detto che debba essere l'utente finale farla. Potresti essere tu, magari accedendo ad una pagina non linkata, conoscibile solo da te, in cui scrivi un cookie in base a dei profili standard...

Così, sono idee che mi passano per la testa... potrebbe non essere la migliore prendere il nome della macchina, che tra l'altro è facilmente modificabile!

maxves Profilo | Newbie

Le macchine sono in DHCP con un lease basso.

Un cookie... e se l'utente cancella i file temporanei di Internet Explorer ??

MaXiM

pozzoli.samuele Profilo | Senior Member

Ribadisco e se l'utente cambia il nome della macchina? E' facile come cancellare i cookies...

Tieni conto che ASP è stato pensato per il Web ed è impensabile leggere il nome della macchina sul web. Quanti Toshiba, o Acer, o NBMarco..., per assurdo, esistono sul web? Le uniche cose univoche sono o l'indirizzo ip, o la session o il disco della macchina.

Secondo me... Inizializzi un cookie... Dici che se vogliono usare l'app, non devono cancellare i cookie e se li cancellano la reinizializzi.

Penso che se vuoi identificare le macchine per il nome, dovrai poi scriverli in qualche modo nell'app, a mano...

Non conosco un metodo per leggere il nome.

Puoi però farti una paginetta, in un secondo, con tutti gli http-referer... Se c'è il nome della macchina, l'hai trovato.

Altrimenti devi cambiare strategia.

Essendo tutto basato sul protocollo http, l'unico modo che hai per riconoscere la macchina che accede sono gli http referer. Che comunque possono essere bloccati.

maxves Profilo | Newbie

Gli utenti non possona cambiare il nome macchina.
I pc sono all'interno di un dominio.

MaXiM

pozzoli.samuele Profilo | Senior Member

Guarda: Questi sono tutti i dati che puoi ricavare dala richiesta http. Di più non puoi.

ALL_HTTP _|_ HTTP_CONNECTION:Keep-Alive HTTP_ACCEPT:*/* HTTP_ACCEPT_ENCODING:gzip, deflate HTTP_ACCEPT_LANGUAGE:it HTTP_COOKIE:ASP.NET_SessionId=gnluua55jfxbswrcexkj02bb HTTP_HOST:localhost:4319 HTTP_REFERER:http://localhost:4319/AssistenzaTecnica/Default.aspx HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30) HTTP_UA_CPU:x86

ALL_RAW _|_ Connection: Keep-Alive Accept: */* Accept-Encoding: gzip, deflate Accept-Language: it Cookie: ASP.NET_SessionId=gnluua55jfxbswrcexkj02bb Host: localhost:4319 Referer: http://localhost:4319/AssistenzaTecnica/Default.aspx User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30) UA-CPU: x86

APPL_MD_PATH _|_

APPL_PHYSICAL_PATH _|_ C:\Documents and Settings\Administrator\Desktop\CDSN\Siti\AssistenzaTecnica\

AUTH_TYPE _|_ NTLM

AUTH_USER _|_ CDSNICO150\Administrator

AUTH_PASSWORD _|_

LOGON_USER _|_ CDSNICO150\Administrator

REMOTE_USER _|_ CDSNICO150\Administrator

CERT_COOKIE _|_

CERT_FLAGS _|_

CERT_ISSUER _|_

CERT_KEYSIZE _|_

CERT_SECRETKEYSIZE _|_

CERT_SERIALNUMBER _|_

CERT_SERVER_ISSUER _|_

CERT_SERVER_SUBJECT _|_

CERT_SUBJECT _|_

CONTENT_LENGTH _|_ 0

CONTENT_TYPE _|_

GATEWAY_INTERFACE _|_

HTTPS _|_

HTTPS_KEYSIZE _|_

HTTPS_SECRETKEYSIZE _|_

HTTPS_SERVER_ISSUER _|_

HTTPS_SERVER_SUBJECT _|_

INSTANCE_ID _|_

INSTANCE_META_PATH _|_

LOCAL_ADDR _|_ 127.0.0.1

PATH_INFO _|_ /AssistenzaTecnica/Home.aspx

PATH_TRANSLATED _|_ C:\Documents and Settings\Administrator\Desktop\CDSN\Siti\AssistenzaTecnica\Home.aspx

QUERY_STRING _|_

REMOTE_ADDR _|_ 127.0.0.1

REMOTE_HOST _|_ 127.0.0.1

REMOTE_PORT _|_

REQUEST_METHOD _|_ GET

SCRIPT_NAME _|_ /AssistenzaTecnica/Home.aspx

SERVER_NAME _|_ localhost

SERVER_PORT _|_ 4319

SERVER_PORT_SECURE _|_ 0

SERVER_PROTOCOL _|_ HTTP/1.1

SERVER_SOFTWARE _|_

URL _|_ /AssistenzaTecnica/Home.aspx

HTTP_CONNECTION _|_ Keep-Alive

HTTP_ACCEPT _|_ */*

HTTP_ACCEPT_ENCODING _|_ gzip, deflate

HTTP_ACCEPT_LANGUAGE _|_ it

HTTP_COOKIE _|_ ASP.NET_SessionId=gnluua55jfxbswrcexkj02bb

HTTP_HOST _|_ localhost:4319

HTTP_REFERER _|_ http://localhost:4319/AssistenzaTecnica/Default.aspx

HTTP_USER_AGENT _|_ Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)

HTTP_UA_CPU _|_ x86

La mia macchina si chiama CDSNICO150 e come vedi, trovi questo dato ove identifica gli utenti.

Il problema è che se l'utente è loggato sul dominio, trovi nel nome utente il nome del dominio, non della macchina. Quindi che io sappia, non hai modo di identificare il nome della macchina.

Desolato.

A meno che gli utenti non facciano login con un utente locale.

Good luck!

Ps: Per avere i dati che ti ho fornito, devi mettere in una pagina vb, questo codice:

For Each dato As String In Request.ServerVariables
Response.Write("<br />" & dato & " _|_ " & Request.ServerVariables(dato) & "<br />")
Next

Eventualemente, traduci in c.

Buona fortuna!

maxves Profilo | Newbie

Grazie...
Trovero un'altro modo per risolvere il problema.

MaXiM
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5