Numero de serie del disco

30/04/2006 - 05:59 por HighSoft | Informe spam
Utilizo el siguiente codigo para obtener el número de serie del disco duro

Dim disco As New _

System.Management.ManagementObject( _

"Win32_PhysicalMedia='\\.\PHYSICALDRIVE0'")

Try

MessageBox.Show(disco.Properties("SerialNumber").Value.ToString, _

"Número de Serie", _

MessageBoxButtons.OK, MessageBoxIcon.Information)

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try


que funciona perfectamente en una aplicación Windows, pero no en un Servicio
Web.
Porqué ocurre esto?

Si alguien me puede ayudar se lo agracedere enormemente.


Saludos

Preguntas similare

Leer las respuestas

#1 Chochenager
30/04/2006 - 07:45 | Informe spam
En la ayuda te pone el alcance y las plataformas de todas las clases
Respuesta Responder a este mensaje
#2 Alberto Poblacion
30/04/2006 - 09:14 | Informe spam
"HighSoft" wrote in message
news:
Utilizo el siguiente codigo para obtener el número de serie del disco duro
[...]
System.Management.ManagementObject( _
"Win32_PhysicalMedia='\\.\PHYSICALDRIVE0'")
[...] que funciona perfectamente en una aplicación Windows, pero no en un
Servicio Web.
Porqué ocurre esto?



Casi seguro, problema de permisos. Cuando lo haces desde Windows, te
toma los permisos del usuario llamante, pero desde el servicio web te toma
por defecto el usuario Aspnet o Network Service, que probablemente no tienen
permiso para leer el número de serie del disco.
Para comprobar si es esto, haz una prueba rápida poniendole el <identity
impersonate...> al web config para ejecutar el servicio web con un usuario
que tenga mayores permisos. Si asi funciona, y no quieres cambiar la
identidad del servicio web, puedes poner el usuario y password en la ruta
WMI al construir el ManagementObject.
Respuesta Responder a este mensaje
#3 HighSoft
30/04/2006 - 17:17 | Informe spam
Disculpa mi ignoracia.
Me podrias indicar exactamente en que parte del web.config debo poner
<identity impersonate...>
y cual es codigo exacto?

Gracias

"Alberto Poblacion"
escribió en el mensaje news:
"HighSoft" wrote in message
news:
Utilizo el siguiente codigo para obtener el número de serie del disco
duro
[...]
System.Management.ManagementObject( _
"Win32_PhysicalMedia='\\.\PHYSICALDRIVE0'")
[...] que funciona perfectamente en una aplicación Windows, pero no en un
Servicio Web.
Porqué ocurre esto?



Casi seguro, problema de permisos. Cuando lo haces desde Windows, te
toma los permisos del usuario llamante, pero desde el servicio web te toma
por defecto el usuario Aspnet o Network Service, que probablemente no
tienen permiso para leer el número de serie del disco.
Para comprobar si es esto, haz una prueba rápida poniendole el
<identity impersonate...> al web config para ejecutar el servicio web con
un usuario que tenga mayores permisos. Si asi funciona, y no quieres
cambiar la identidad del servicio web, puedes poner el usuario y password
en la ruta WMI al construir el ManagementObject.



Respuesta Responder a este mensaje
#4 Alberto Poblacion
30/04/2006 - 18:33 | Informe spam
"HighSoft" wrote in message
news:%
Disculpa mi ignoracia.
Me podrias indicar exactamente en que parte del web.config debo poner
<identity impersonate...>
y cual es codigo exacto?



<identity impersonate="true" userName="Administrator" password="clave"
/>

Se pone debajo del <system.web>
Respuesta Responder a este mensaje
#5 HighSoft
30/04/2006 - 22:10 | Informe spam
Funcionó perfectamente!!!
Te explico un poco que es lo que estoy tratando de hacer, porque me surge un
nuevo problema.
Quiero proteger contra copia un servicio web que intento comercializar.
Debería funcionar así:

Fase de habilitacion
1. El usuario instala el servicio.
2. Usando una aplicación Windows el usuario obtiene y me proporciona el
numero de serie de su disco duro, y me solicita una clave.
3. Yo genero esta clave con este numero de serie del disco y se la dicto
para que la introduzca
4. La clave queda escrita en un archivo del disco duro del usuario

Fase de uso
Cuando el servicio web está en uso hace lo siguiente:
1. Accede al archivo y lee la clave (paso 4 de la fase de habilitación)
2. Obtiene el numero de serie de disco duro
3. Genera la clave con este numero utilizando el mismo algoritmo del paso 3
de la anterior fase
4. Comprueba si ambas claves son iguales
5. Si son iguales el servicio corre normalmente sino no.

Ahora mi problema es:
En que momento se debe introducir el userName y el password? De qué manera?


Saludos y gracias




"Alberto Poblacion"
escribió en el mensaje news:
"HighSoft" wrote in message
news:%
Disculpa mi ignoracia.
Me podrias indicar exactamente en que parte del web.config debo poner
<identity impersonate...>
y cual es codigo exacto?



<identity impersonate="true" userName="Administrator" password="clave"
/>

Se pone debajo del <system.web>




Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida