HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Kontrol engedélyének korlátozása darabszámra


Kontrolok engedélyezése 2. rész

Példaprogram letöltése

20830 bájt

A sorozat előző számában megismerhettük a kontrolok engedélyezésének alapelveit. A sorozat e számában egy kicsit bonyolultabb engedély-ellenőrzési rendszert próbálunk megvalósítani. Lehetőség van ugyanis arra, hogy a kontrolhoz kapcsolt licence csak meghatározott számú kontrol egy lapon vagy Form-on történő használata esetén legyen érvényben, több kontrol esetén ne legyen használható. A mellékelt példa segítségével bemutatjuk, hogyan is lehetséges ez.

A mellékelt példa megnyitása előtt szükséges egy CLClient nevű virtuális könyvtár létrehozása, mely a példa könyvtárában található CLClient mappára mutat. Ehhez futtassa le a mellékelt CreateVD.js parancsállományt.
A kontrol hasonló elven működik, mint a sorozat ezt megelőző számában megalkotott címke, csupán az a különbség, hogy a mellékelt és a kliens-alkalmazásban használt licence-állomány az ellenőrzendő szöveg mellett egy darabkorlátot is tartalmaz, melynek segítségével korlátozhatjuk a weblapon maximálisan elhelyezhető kontrolok darabszámát. A kontrolban ennek érdekében felhasználjuk a sorozat előző számában megalkotott SLicenseProvider és ServerLicense osztályokat, mert a használandó ExpireLicense és ExpireProvider osztályok ezekből származnak.
ExpireLicense osztály
Az ExpireLicense osztályban határozzuk meg, hogy hány darab kontrolról lehet szó. A konstruktorában beállítjuk a limit változó értékét.
private int limit;
private int count;
public ExpireLicense(Type type, string key, int uLimit) : base(type, key)
{
  limit = uLimit;
}
Az IncCounter metódusban növeljük a count változó értékét.
public void IncCounter()
{
  count++;
}
Az IsExpired property-ben lehet lekérdezni, hogy a count érték elérte-e a limit változó értékét. Amennyiben igen, akkor a kontrolok engedélye lejártnak tekinthető, a használó lap már nem tud betöltődni.
public bool IsExpired
{
  get
  {
    return count > limit;
  }
}
ExpireProvider osztály
Az ExpireProvider osztályban a ValidateLicense metódus lehet érdekes, hiszen itt történik meg a megadott szám ellenőrzése. Az ellenőrzéskor meghívjuk az IncCounter metódust, majd lekérdezzük az IsExpired property értékét.
ExpireLicense test = (ExpireLicense)license;
test.IncCounter();
if (test.IsExpired) 
{
  message = "A license (" + test.LicensedType.Name +  ") lejárt!";
  return false;
}
Amennyiben a property értéke igaz, akkor egy hibaüzenetet generálunk, és a metódus FALSE értékkel tér vissza.
A licence-állományban a szöveg és a darabkorlát száma egy „;” karakterrel van elválasztva, így az ellenőrző algoritmus el tudja választani a két elemet.
A kontrol kódjában az ExpireProvider osztályt kell megadni a LicenseProvider attribútumban.
[LicenseProvider(typeof(ExpireProvider))]
public class CLControl : Label
{
  ...
A hívó alkalmazásban ismételten nincs teendőnk. A helyes működést demonstrálandó, helyezzen el egynél több kontrolt a weblapon. A kérést a WebForm2.aspx lap szolgálja ki, ugyanis a darabkorlát 1.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 719. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |