Dati su scheda leggere e scrivere

lunedì 13 maggio 2013 - 10.26

ridaria Profilo | Expert

Ciao amici dovrei predisporre un sistema con cui caricare su di una scheda un tot tempo ( ex. 2 ore)

Dopodichè la sceda va inserita nel lettore e puoi usare un determinato software per 2 ore, al termine delle quali non puoi più accedere al software.

Qualcuno di voi ha già fatto questa cosa?

Grazie


Riccardo D'Aria

Dev01 Profilo | Newbie

Ciao,

il mio consiglio è quello di scrivere (o copiare automaticamente) un piccolo client sul pc ospite che si occupi di rilevare la presenza della tua scheda e di un determinato file crittografato in essa residente contenente una chiave di riconoscimento (o meglio rilevare il seriale di produzione della card).

A questo punto, se il controllo va a buon fine, vai a scrivere nel registro (o in qualsiasi file di tua creazione) tre chiavi cifrate:
la prima rappresenta la data e l'ora di avvio, la seconda la data e l'ora di blocco e la terza specifica la possibilità di ripristinare l'utilizzo del software.

In alternativa crei il file (o la chiave di registro) e specifichi la sola data (e ora) di partenza.
Se quest'ultimo già esiste il software non si avvia, se, invece, non esiste lo crei.

Inserisci nel software un modulo che esegua il controllo sull'esistenza del dato e che, tramite un timer o un thread esegua un controllo ogni tot (anche due ore) per verificare il tempo trascorso.

A questo punto puoi assegnare il risultato del calcolo ad una variabile per verificare se il suo valore è maggiore o uguale al tempo da te prefissato.

Per il calcolo puoi utilizzare il seguente codice:

Date.Parse(StartDate).Subtract(Date.Parse(StopDate)).ToString()
01000100 01100101 01110110 00101101 00110000 00110001

Vinsent Profilo | Senior Member

>Ciao amici dovrei predisporre un sistema con cui caricare su
>di una scheda un tot tempo ( ex. 2 ore)
>
>Dopodichè la sceda va inserita nel lettore e puoi usare un determinato
>software per 2 ore, al termine delle quali non puoi più accedere
>al software.
>
>Qualcuno di voi ha già fatto questa cosa?
>
>Grazie
>
>
>Riccardo D'Aria
Io NO....ma mi vengono in mente le schede telefoniche prepagate, piccola curiosità: è un' invenzione italiana!
http://it.wikipedia.org/wiki/Scheda_telefonica
Potresti prenderne spunto, poi dipenderebbe dall' hardware che hai tra le mani e dagli utilizzi che offre.
Ad esempio, se scrivi il tempo sulla scheda bisogna valutare il rischio "clonazione" e nel caso sia ritenuto necessario cercare di intervenire, in questo caso il software può funzionare offline e il cardreader deve anche scrivere/aggiornare il "credito residuo". Oppure, se della scheda viene usato solo il seriale e il tempo viene memorizzato su un DB, scavalchi il problema clonazione perchè il "credito residuo" rimarrebbe UNO anche per più schede "uguali" ma il software deve essere online per funzionare e il cardreader basta solo che legga.
Di più non mi viene in mente altro.
Ciao

ridaria Profilo | Expert

>Ciao,
>
>il mio consiglio è quello di scrivere (o copiare automaticamente)
>un piccolo client sul pc ospite che si occupi di rilevare la
>presenza della tua scheda e di un determinato file crittografato
>in essa residente contenente una chiave di riconoscimento (o
>meglio rilevare il seriale di produzione della card).
>
>A questo punto, se il controllo va a buon fine, vai a scrivere
>nel registro (o in qualsiasi file di tua creazione) tre chiavi
>cifrate:
>la prima rappresenta la data e l'ora di avvio, la seconda la
>data e l'ora di blocco e la terza specifica la possibilità di
>ripristinare l'utilizzo del software.
>
>In alternativa crei il file (o la chiave di registro) e specifichi
>la sola data (e ora) di partenza.
>Se quest'ultimo già esiste il software non si avvia, se, invece,
>non esiste lo crei.
>
>Inserisci nel software un modulo che esegua il controllo sull'esistenza
>del dato e che, tramite un timer o un thread esegua un controllo
>ogni tot (anche due ore) per verificare il tempo trascorso.
>
>A questo punto puoi assegnare il risultato del calcolo ad una
>variabile per verificare se il suo valore è maggiore o uguale
>al tempo da te prefissato.
>
>Per il calcolo puoi utilizzare il seguente codice:
>
>Date.Parse(StartDate).Subtract(Date.Parse(StopDate)).ToString()
>01000100 01100101 01110110 00101101 00110000 00110001


ti ringrazio.
L'architettura che mi hai presentato è di sicuro interessante e collima con ciò che avevo pensato.

Ma ciò che mi interessa sapere è come leggere e scrivere su queste schede.
Domanda, viene vista come una periferica su cui si salvano dei file di testo?
Viene vista come un singolo file su cui scrivere?
Quale è l'ardware necessario?
é fattibile con VB.net?

Grazie ancora.

Riccardo D'Aria

Dev01 Profilo | Newbie

>ti ringrazio.

Figurati...i forum servono a questo (e anche le notti insonni di studio davanti al proprio PC)

>L'architettura che mi hai presentato è di sicuro interessante
>e collima con ciò che avevo pensato.

Immagino che sia sufficientemente complessa e sicura da scoraggiare anche un power user anche se ci sono delle tecniche più avanzate come la firma di un file tramite strong-name o il controllo dell'hash a runtime per garantirne l'intoccabilità e poter inserire al suo interno il seriale del supporto e altre informazioni)

>Ma ciò che mi interessa sapere è come leggere e scrivere su queste
>schede.

Se parliamo di scheda SD va inserita in un'apposito lettore (qualora il computer non sia predisposto con porte dedicate integrate nel case) che comunica tramite usb e ti si mostra come una normale cartella di windows.

>Domanda, viene vista come una periferica su cui si salvano dei
>file di testo?

Vedi sopra...

>Viene vista come un singolo file su cui scrivere?

Rivedi sopra.... ci puoi scrivere dentro ciò che vuoi e in qualsiasi formato compatibile o proprietario...

>Quale è l'hardware necessario?

Io ho una Trust multicard reader 85 schede in uno del valore di 9,90€ che si collega tramite USB!

>é fattibile con VB.net?

Penso proprio di si... se un linguaggio general purpose di altissimo livello come quelli forniti dal .net framework (per giunta pienamente compatibili con il sistema operativo sul quale girano) si fermasse davanti a qualcosa del genere preferirei di gran lunga dedicarmi alle costruzioni lego.

>Grazie ancora.

Di niente... ricordati che se la tua applicazione utilizza un database il motore deve essere presente sul PC ospite e, se non si tratta di MSAccess si deve effettuare l'attachment del catalogo all'istanza presente sulla macchina.

Si pone inoltre un problema relativo la possibilità di utilizzo "chopped" fino al termine del tempo prefissato.

>Riccardo D'Aria

Dev-01

01000100 01100101 01110110 00101101 00110000 00110001
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5