Hej! Alltså sånt är skit svårt... för web app. Det går oftast knäcka as lätt. du kan slå ett getöga på xheo licensing oxo Det behöver inte vara super säkert. "Kan man inte kompilera koden så ser de inte ser klassen som hanterar licensen/serienummret. " okej då förstår jag :) rAKi Såg att .NET Framework har en inbyggd licens klass jepp.. jag använder den i våra egna kontroller "..någon som vet någon lösning på det här? tex hur man kan få den att ignorera versionsnummret?" Jag tror inte att jag har förstått riktigt rätt, denna koden fungerar iaf inte för mig (a valid license cannot be granted...) nej då funkar det fint , men om man släpper komponenter som används av andra så vill dom nog kunna se vilken version en viss dll är för att kunna se om dom använder rätt verre eller en gamalSkydda applikation med serienummer
Någon som har tips/länkar på hur jag skyddar en applikation med serienummer.
Serienummer, Namn, E-post o.s.v. skriver användaren i web.config som sedan skickas till en key-generator som gör ett serienummer utav Namn, E-post och kontrollerar att det serienummret överensstämmer med serienummret i web.config.
Tack på förhand!Sv: Skydda applikation med serienummer
Så vad du kan göra är att du lika gärna tar en unik maskin kod (som blri för vajre installerad dator)
tar med den som en salt eller nått.
Installerar du om datorn får man (vad jag har för mig) en ny maskinkod så då fungerar inte appen längre. Är det en app som skall läggas hos kund? eller som ni driftar? för läggs den hos kund kan de lätt genom att kolla din kod se hur du går tillväga för att kolla serialnumber. En annan idé är kanske att nyttja certifikat. Ja det finns massor med sätt dessa kom jag bara å tänka på just nu...
Tänk mer vad det är du vill skydda siten från, piratkopiering?
Mvh JohanSv: Skydda applikation med serienummer
www.xheo.com
dom har ett licenssystem för apps/kontroller som ska vara ganska bra.
//RogerSv: Skydda applikation med serienummer
Det är en web applikation (t.ex. cms) som ligger hos kund.
Kan man inte kompilera koden så ser de inte ser klassen som hanterar licensen/serienummret.
/TomasSv: Skydda applikation med serienummer
Alltså visst är den kompilerad, men du kan se den, den är ju trotts allt bara MSIL.
Mvh JohanSv: Skydda applikation med serienummer
Det jag vill skydda mig ifrån är "vanlig svenssons", riktigt duktiga kan man nog nästan aldrig skydda sig ifrån ändå.
Inga tips på hur en lösning skulle kunna se ut ?
/TomasSv: Skydda applikation med serienummer
Jag skulle nog sett till o hashat ett värde av nått slag, eller flera.
Lät säga att du i web.config lägger in Namn och Företag. Ta en hash på dessa tillsammans med
Serverns unika ID. Minns inte på rak arm hur man får ut detta ID, om du vill kan jag leta upp det senare.
Det värde du nu kommer få lägger du bara i en tag i web.config när du går mot loginsidan (antar att du har en sådan) plockar du ut namn företag och maksin id, kör hash och sedan kollar om den är samma som serienummer värdet. Är detta sant visa loginsidan annars något i stil med no valid serialkey eller nått.
Mvh JohanSv: Skydda applikation med serienummer
System.ComponentModel.License
Någon som provat på denna ?Sv: Skydda applikation med serienummer
System.ComponentModel.License går hand i hand med System.ComponentModel.LicenseProvider
som kanske är den mer intressanta klassen , där kan man lägga sin egen logik för var och hur div nycklar ska läsas och valideras.
såhär fungerar det (iaf för kontroller)
om du lägger en kontroll med licensiering på ett formulär tex , så skapas en fil i appens root ,
som heter "licenses.licx" (har inte med licfilelincese att göra) den filen använder
vs.net sedan vid compiletime för att undersäka vilka kontroller som är licensierade ,
och för varje licensierad kontroll så anropas lc.exe för att skapa en kompilerad licens.
alla kompilerade licenser bakas sedan in i din app som resurser.
så det är väldigt trevligt , förutom att den lider av versioning problem , dvs den bakar in i licenses.licx tex "1.2.4.132423423" och om man sedan kompilerar om och släpper en ny verre av sin komponent och skickar till sina kunder så står det fortfarande det gamla versionsnummret i deras befintliga licx filer och därmed kompileras inte licenserna in i applikationerna och kunderna blir arga :P
..någon som vet någon lösning på det här? tex hur man kan få den att ignorera versionsnummret?
//RogerSv: Skydda applikation med serienummer
Vad händer om du sätter ett fastversionnummer i sin AssemblyInfo fil? Kommer seriehanteringen att fungera då? även om man gjort en "ny version".
Mvh JohanSv: Skydda applikation med serienummer
Vad har jag gjort för fel ?
LicensedWebControl.cs
<code>
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Licensing
{
[LicenseProvider(typeof(LicFileLicenseProvider))]
public class LicensedWebControl : Label
{
public LicensedWebControl()
{
LicenseManager.Validate(typeof(LicensedWebControl));
}
}
}
</code>
licensing.aspx
<code>
<%@ Page Language="C#" debug="true" %>
<%@ Register TagPrefix="test" Assembly="Licensing" Namespace="Licensing" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form runat="server">
<test:LicensedWebControl runat="server" />
</form>
</body>
</html>
</code>
Licensing.LicensedWebControl.LIC (som ligger i rooten, samma som *.aspx filen)
<code>
Licensing.LicensedWebControl is a licensed component.
</code>Sv: Skydda applikation med serienummer
//Roger