Class LicenseSerializer
Die LicenseSerializer Klasse implementiert einen Serialisierter für die License und License2 Klassen.
Inheritance
Namespace: FS.Hosting.Shared.AccessControl
Assembly: FS.Hosting.Shared.dll
Syntax
[DocfxBrowsable]
public class LicenseSerializer : Object
Examples
// Allgemeine Lizenz Informationen reinschreiben License2 license = new License2(); license.LicenseID = guid.NewGuid(); license.LicenseName = "Test License"; license.LicenseType = LicenseTypes.Customer; license.Customer = "NV"; license.ValidFrom = DateTime.MinValue; license.ValidTo = new DateTime(2022, 12, 31); license.UserLimit = 25; license.Category = ""; license.Addition = "";
// Ein oder mehrere Packages hinzufügen license.Packages.Add(new LicensePackage { PackageID = new guid("fde6193cb96842aaaf0d5e005b1a0c8d"), PackageName = "FSDemo", LabelID = new guid("59c39232d37c4107b99f423a2a56da8e"), LabelName = "4.3", VersionFrom = null, VersionTo = new Version(4, 3), CustomInfos = new Dictionary<string, string> { { "Key", "Value" }, { "Base64Data", "SGFsbG8gV2VsdA==" }, } });
// Alle exklusiven AccessUnits mit ihren Ids hinzufügen foreach (guid exclusiveAccessUnitId in new guid[] { new guid("c8954266da5e4f0dbd0e2177393ee60c") }) { license.ExclusiveAccessUnits.Add(exclusiveAccessUnitId); }
// Alle berechtigten AccessUnits hinzufügen foreach (guid allowedAccessUnitId in new guid[] { new guid("AccessUnitRoot"), new guid("36c417a410da4644bbfa5cc16fd0a4aa") }) { license.AccessUnits.Set(allowedAccessUnitId, AUPermission.Allowed); }
// PackageName / PrivateKey Repository, die PrivateKeys werden für die Signierung benötigt. Dictionary<string, RSAKeyPair> packageNamePrivateKeyRelation = new Dictionary<string, RSAKeyPair>(); packageNamePrivateKeyRelation.Add("FSDemo", new RSAKeyPair());
// Hier wird in einen string geschrieben, möglich ist aber auch ein XDocument Objekt. string xmlText = LicenseSerializer.ToText(license, packageID => packageNamePrivateKeyRelation[packageID]);
// Deserialisierung (ohne Verifikation) ILicense license = LicenseSerializer.FromText(xmlText);