.net - tutorial - ¿Cómo hago para obtener la licencia de una aplicación de Windows WPF
wpf or windows forms (4)
Puede considerar CryptoLicensing para .Net : proporciona opciones tanto completas como de prueba (días de uso, días de uso únicos, ejecuciones, etc.). También viene con un servidor de licencias listo para usar con integradores de comercio electrónico para paypal, shareit, plimus, etc.
He desarrollado una pequeña aplicación que me gustaría probar y vender, pero no estoy familiarizada con la mejor manera de hacerlo.
¿Cómo haría para bloquear el programa para uso de prueba1.
¿Cómo me ocuparía de aceptar pagos?
Teniendo en cuenta que soy una banda de un solo hombre con poco dinero, esperaba una solución que fuera gratis o de bajo costo, efectiva, segura y simple de implementar y mantener. No es algo con lo que tenga mucha experiencia, ya que normalmente lo he desarrollado para el sector público, donde compran una solución como whoel y nunca la hemos licenciado.
Cualquier ayuda sería realmente apreciada. Gracias,
segundo
Si desea hacerlo correctamente, honestamente, debo recomendar la compra de una solución de terceros de confianza para estas dos cosas. Existen varios paquetes de licencias para .Net (usamos Desaware para nuestros productos, aunque no he trabajado directamente con ellos por lo que no pude dar una recomendación detallada. Parece lo suficientemente simple para lo que he expuesto) a). Sin problemas, sin errores, y la recompensa a largo plazo es enorme en términos de tiempo ahorrado.
Los servicios de pago de terceros pueden gestionar las transacciones de tarjeta de crédito en línea por usted, y también siempre hay PayPal. Busque en Google "cómo aceptar pagos con tarjeta de crédito en la web" y encontrará proveedores de soluciones comerciales infinitos.
Si prefieres pasar el tiempo para construir un sistema de licencias tú mismo, este hilo de es un recurso bastante bueno en los diversos aspectos a considerar.
Te puedo decir cómo lo hago. Descargo de responsabilidad: su kilometraje puede variar. Esto es para el caso de prevenir la piratería casual de un simple WinForms o WPF u otra aplicación de escritorio. No es particularmente robusto ni seguro contra el craqueo sofisticado, pero hace un gran trabajo para prevenir la piratería informal.
Para la licencia, probé varias soluciones de terceros. Todos son bastante fáciles de usar para el caso nominal de prevención de piratería informal , lo que, por supuesto, es la única piratería que debería preocuparle.
Lo que descubrí fue que ninguno de los proveedores de licencias era realmente compatible con los procesadores / pasarelas de pago existentes. Hay algunas soluciones "todo en uno", pero el nivel de deuda técnica allí era inaceptable para mí (un profesional independiente y un desarrollador único). Estaba buscando una forma sencilla de pasar de un enlace "Comprar ahora" en un sitio web para desbloquear el software de escritorio después de la compra. Algunas de las soluciones "todo en uno" existentes son excesivas para este propósito, algunas ignoran por completo el aspecto de "compra".
Terminé usando firmas digitales Xml para firmar archivos de licencia con la clave privada de la aplicación, que nunca se distribuye a los usuarios. El resultado: tiene un archivo .LIC o .LICX en la máquina de destino que los usuarios pueden leer (es texto sin formato, excepto por la firma envuelta) pero no se pueden modificar. (O más bien, no pueden modificarlo sin que se dé cuenta de que lo han modificado). Este pequeño archivo es la clave de todo el sistema.
Cuando se carga la aplicación, verifica que la firma XML es válida (usando la clave pública de la aplicación, que se distribuye con la aplicación) y, si es válida, lee la información del archivo de licencia y habilita / deshabilita ciertas características basadas en eso . Por ejemplo, su archivo de licencia podría contener una fecha de caducidad del producto, o un par de piezas de información única de la máquina (tenga cuidado, siempre, para no incomodar a sus usuarios legítimos con esto ... no quiere que tengan que volver a solicitar la licencia) teclas cada vez que cambian un disco duro).
Como paso adicional (y un poco más invasivo), puede hacer que la aplicación se conecte a su servidor, aunque esto lo lleva a problemas de tiempo de inactividad del servidor y así sucesivamente. Algunos desarrolladores están dispuestos a soportar esto, otros no.
Ahora para la parte de compra, hay muchas muchas opciones. Paypal es lejos el más fácil. Puede que te gusten o no sus planes de tarifas, pero es una tarea absolutamente fácil ponerse en marcha con Paypal.
Para eso desea una cuenta Premier o Business, no una cuenta Personal. Nota: en los documentos de Paypal a veces dice que necesita una cuenta de Paypal Business. Cuando dicen eso, realmente quieren decir "una cuenta de Paypal Business o Premier".
Ahora consiga un sitio web de producto y personalice sus botones Comprar ahora, etc. Cuando el usuario realice una compra, su sitio web recibirá un ping de Paypal IPN , que es su servicio de notificación. Este ping es solo una llamada a un punto final HTTP definido en su sitio web, y contiene toda la información que desea sobre la compra. Principalmente, el correo electrónico del usuario ...
(De acuerdo, creo que debería mencionar: Paypal, junto con la mayoría de los otros procesadores legítimos, tiene un "cajón de arena" donde puede probar todo esto antes de ponerlo en funcionamiento. Hace maravillas para darle la calidez de que realmente va a funcionar, con dinero en el línea.)
El cual usará para enviar automáticamente al Usuario un Código de Activación después de la compra, para que no tengan que esperar 24 horas para que le envíe un código manualmente. Almacene este código de activación (que, en este escenario, puede ser cualquier número único, difícil de adivinar, como un GUID, con o sin certificación) en la base de datos con un recuento de uso que rastreará para detectar códigos duplicados.
El usuario ingresa el código de activación en el software, a través de la pantalla que usted proporciona.
El software se comunica con el servidor a través de https (esto es algo que solo ocurre una vez que el software está desbloqueado) y dice: "hey, ¿es este código de licencia que el usuario acaba de darme?"
Si el código de activación proporcionado coincide con el código almacenado en la base de datos en el momento de la venta, y ese código de activación aún no se ha confirmado, entonces ¡Éxito!
Luego, el servidor necesita compilar el archivo de licencia, que es un archivo XML o de texto extremadamente simple que contiene "lo que esta copia del software puede hacer". No hay un estándar para lo que debería contener, solo unas pocas convenciones.
El servidor firma el archivo de licencia con la clave privada de la aplicación y lo devuelve como un flujo de datos a su aplicación ...
Lo que lo guarda como un archivo .LIC o .LICX (o la extensión que desee), que luego verifica en el tiempo de carga según el Paso 3.
Esto me ha funcionado muy bien y es muy fácil de implementar. La clave de todo es simplemente: confía en esos DSigs XML. Cuando falta el archivo LIC, se establece por defecto el modo de prueba. Cuando se modifica la firma, cambia al modo de prueba. Solo cuando el archivo LIC está presente, está firmado de manera válida y contiene la información correcta, entonces (en código) abre el acceso a la funcionalidad "completa".
Además, intercalar más de un punto de verificación de licencia en su código. Hago una al inicio de la aplicación, otra al ralentí y otra antes de ingresar a las áreas funcionales clave. Entonces, si alguien invierte el código y puede hacerlo, al menos tendrán que hacer un poco de búsqueda para eliminar todas las verificaciones de la licencia. Por supuesto, nada de lo que pueda hacer puede evitar que las personas se parcheen en torno a esos controles. Solo quieres hacerlo un poco más difícil.
Usted querrá utilizar algún tipo de Proyección de software y licencias para aplicaciones .NET. Hay cientos de opciones por ahí, desde muy baratas (y artículos sobre cómo rodar las suyas) hasta herramientas comerciales muy robustas.