2011-08-05 13 views
5

Si tengo 5 computadoras objetivo y voy a instalar mi aplicación en una de esas computadoras objetivo. ¿Cómo evito que los usuarios copien mi aplicación en otras computadoras de destino?C# Application License Components and Controls

Para que quede claro, no quiero que copien mi aplicación después de la instalación (No deben copiar mi aplicación de la carpeta de la aplicación instalada). El problema ahora es que configuro e implemente mi aplicación usando la Instalación e Implementación de Visual Studio 2010, pero cualquiera puede copiar mi carpeta de aplicaciones después de la instalación, por ejemplo, mi carpeta de aplicaciones (exe, DLL y recursos) se ubica en "Archivos de programa/MiAplicación" . De hecho, pueden copiar mi aplicación de esa carpeta y pegarla en otras computadoras y luego usarla. Por supuesto, pueden copiarlo pero creo que no deberían poder usar mi aplicación copiada ¿verdad? ¿Hay alguna manera de protegerlos copiando mi aplicación? Tengo que escribir un código adicional?

Soy realmente nuevo para la distribución de software. Por favor, guíame lo que tengo que hacer. Gracias

Respuesta

8

Puede usar Rhino Licensing framework para la generación de archivos de licencia. Tiene la clase LicenseGenerator que tiene un método Generate. Esto es lo que parece:

public string Generate(string name, Guid id, DateTime expirationDate, IDictionary<string, string> attributes, LicenseType licenseType); 

Generar método toma el nombre del titular de la licencia. Id. Único para la licencia que se puede generar como Guid.NewGuid(), la fecha de vencimiento y el diccionario de atributos es un lugar donde puede almacenar un par de valores clave personalizados en el archivo de licencia.

La forma en que puede funcionar es que, puede incrustar la información de la máquina en la licencia y en la fase de verificación puede verificar si la licencia pertenece a la misma máquina. Esto significa que no puede copiar el archivo de licencia de una máquina y ponerlo en otra máquina porque no funcionará.

En el archivo de licencia se puede almacenar la siguiente información:

  • La fecha de caducidad de la licencia
  • Nombre de la persona a la que se genera la licencia
  • Hash calculado en base a la información del sistema
+0

Eso significa que tengo que crear una licencia junto con mi aplicación para cada implementación? –

+0

La primera vez que necesita crear una licencia. Y en eso necesita establecer la fecha de caducidad y la información del sistema. Si se cambia o modifica cualquier valor, en ese caso, nuevamente debe generar una nueva licencia para la aplicación. –

2

Yo uso Infralution License Tracker. Es payware pero permite la licencia de parte o la totalidad de una aplicación. También permite la verificación de claves en la verificación en línea. Es posible utilizar la información del cliente para generar la clave, por lo que debería ser factible registrarse utilizando información de la computadora de destino.

http://www.infralution.com/licensing.html

0

Cuando quiera que sea muy fácil se puede utilizar LimeLM. Verificación simple en línea con una opción de prueba.

4

La forma estándar de la industria de evitar que los usuarios ejecuten una aplicación en más de una máquina es bloquear su producto a algunos parámetros de ese sistema. Sin embargo, debe pensar en los siguientes problemas para evitar el trabajo futuro o molestar a los clientes en el futuro. sistemas de crudo que no se ocupan de estas cuestiones han dado nodo de bloqueo de un mal nombre, pero cuando se hace correctamente el nodo de bloqueo es discreto, flexible y seguro:

  • ¿Cómo va a obtener con precisión los parámetros del sistema que se bloquee ¿a?Pedir a los usuarios que los lean/digite es una fuente común de error, por ejemplo, al leer mal una 'l' por '1' o '0' por una 'O'.
  • La dirección MAC se utiliza comúnmente para el bloqueo de nodos, pero esta es una opción deficiente ya que la dirección MAC puede establecerla un administrador en muchos sistemas operativos.
  • Supongamos que bloquea una licencia en varios parámetros del sistema. ¿Qué sucederá si el usuario hace una actualización menor del sistema, causando que uno de ellos cambie? No estarán contentos si tu aplicación de repente se niega a funcionar.
  • Los usuarios querrán mover su licencia a una máquina diferente en algún momento. Deberá pensar en cómo respalda esto sin convertirlo en un agujero de seguridad.
  • Las máquinas de los usuarios se bloquean: sucede. ¿Cómo pueden obtener que su licencia vuelva a funcionar en su sistema nuevo/reconstruido?

Solo algunos problemas que hemos encontrado y solucionado en nuestras soluciones. Espero que esto ayude.

0

Para evitar esto, debe utilizar licencias bloqueadas por máquina/activadas. Esto garantiza que la licencia solo se puede validar desde una sola máquina: si la validación de la licencia falla, puede decidir qué pasos tomar: si salir de la aplicación, mostrar un mensaje al usuario, permitir un período de gracia, etc.

Pruebe CryptoLicensing que admita licencias activadas/bloqueadas por máquina.

DESCARGO DE RESPONSABILIDAD: Yo trabajo para LogicNP Software, el desarrollador de CryptoLicensing.