Newsgroup: it.comp.lang.visual-basic
Titolo: Accesso ai dati del server dal client

Il mio programma risiede su un server Win2000 e viene mandato in esecuzione 
dai vari client.
Avrei bisogno che il mio programma verificasse la presenza di alcuni file e 
chiavi di registro che stanno sul _server_ quando è lanciato dai _client_.
E' possibile senza impazzire? Oppure bisogna per forza creare due programmi, 
lato client e lato server? 

 ha scritto

mi sono rotto di aggiornare gli exe ogni volta che ritocco, e sui client
faccio l'inst completa, poi tolgo l'exe e metto un link al server, in una
cui dir sta il solo exe (anche per la mia macchina, non uso mai l'exe
locale), senza nessun ocx e menata. se l'exe cambia, ne cambio uno solo.
se faccio app.path, mi da' quella del server.
occhio ai permessi cartelle/registro. l'utente e' quello del client.
hth, ciao, j.


La seconda che hai detto, e sarebbe grave il contrario. Se vuoi
renderti la vita meno complicata, usa il registro il meno possibile e
scrivi le impostazioni - e anche, perché no, i files da cercare - in
dei banali files di testo che risiedano nella directory
dell'applicazione.
--
Ciao!
Luca Menegotto

 La seconda che hai detto, e sarebbe grave il contrario.
in teoria si', in pratica a noi sqlserver ancora non serve, basta un mdb. e,
prima dao poi ado, da 5 anni non ha perso un bit. e sul server ci stanno
giusto l'mdb e un .ini.
sqlserver e' gia' installato. riscrivere tutto a modino implicherebbe
parecchio tempo e non guadagnerebbe assolutamente nulla.
ci sono le linee guida teoriche, ma ci sono anche le esigenze e le
condizioni pratiche. non valutare le seconde e' tanto poco sensato quanto
non valutare le prime.
ciao, j.

parecchio tempo e non guadagnerebbe assolutamente nulla.
Attenzione, Marco dice:
"Avrei bisogno che il mio programma verificasse la presenza di alcuni
file e chiavi di registro che stanno sul _server_ quando è lanciato
dai _client_".
Non ho mai pensato a un 3-tier application, la cui valutazione ha
comunque senso se si tratta di applicazioni di tipo client/server.
 Io penso che le chiavi cui accennava non riguardino accesso a
database, ma altre cose. In questo caso, ma in generale, l'accesso al
registro di configurazione di un server da parte di applicazioni
remote è proprio da non fare. Vero questo, allora le strade sono 2:
- scrivi un'applicazione lato server, da testare bene su server di
prova prima dell'installazione, che si occupi della verifica delle
condizioni su richiesta dei client.
- non usi il registro, nel qual caso puoi scegliere dove mettere le
chiavi (file INI? altro file di testo? mdb di configurazione?).
Non vedo altre vie.
--
Ciao!
Luca Menegotto

 Non vedo altre vie.
su questo hai ragionissima. i miei client sul server leggono un ini in
app.path e bastali', al piu' li' scrivono un .csv
ci penserei un bel po' prima di farli scorrazzare nel registro. ci manca
solo che eseguano i bug che ho pensato *io* :)
ciao, j.

Ringrazio tutti quelli che mi hanno risposto, ma a questo punto credo sia 
opportuno, per spiegarmi meglio, specificare qual è il mio obiettivo 
principale: nel server ho aggiunto alcune chiavi nel registro di 
configurazione di Windows e un file in una cartella (non accessibile dai 
client) allo scopo di proteggere la copia del mio programma.
Bisognerebbe che, all'avvio del programma (sia da client che da server), 
questo testasse la presenza sul server di tali chiavi e tali file.
Se dovessi semplicemente leggere/scrivere banali impostazioni, avrei risolto 
con un App.Path, memorizzandoli nella cartella del server, come dicevate 
anche voi. Oppure, se devono essere impostazioni personali di ogni client, 
risolverei con un percorso assoluto (usando la GetWindowsDirectory, oppure 
la SaveSetting, che va direttamente nel registro client). 

 Ringrazio tutti quelli che mi hanno risposto, ma a questo
CLIK
pensiero laterale attivato!
Io faccio così.....
l'idea...c'ho il DB...anche io spesso è un mdb....
visto che c'è.....perchè non sfruttarlo?
Tra le tante tabelle.....una......
struttura di massima:
    il solito ID
    Nome PC(identificativo)
    Chiave
    Permessi
attenzione adesso
    in Nomepc
        Chiave
        permessi
    scrivi criptato...con un qualsiasi algoritmo....si sà a me piace il
blowfish(anche perchè per ora non l'hanno crakkato)
super attenzione:
Obiezione....basta copiare l'mdb!...e tutto fila liscio!
Beh no!
l'installazione server genera tutte le chiavi...compresa la sua
ad esempio....prendo il MAC della scheda di rete...e lo scrivo cripato con
una pw sul campo chiave
    SERVER1
    AD32242FDF
per i client io son fanatico della comunicazione winsock
li chiedo i dati e loro mi rispondono il record criptato...ma basterebbe
fare una procedura...o tenere le chiavi localmente...vedi tu!
se me lo copi su un altro pc....il server va a leggere il suo record
decripta il MAC...lo confronta con i suoi conti...non è uguale ti ride in
faccia!
La pw di criptazione...io la lascio uguale su tutti.....
facciò così.....a digiuno bevo 3 vodke....e poi crollo sulla tastiera....più
casuale di così non mi riesce! :-)
Il sistema si presta a belle cose:
ogni client può avere associato diversi permessi per fare cose diverse
tutto questo perchè è ben chiaro che se ci vogliono crakkare il programma
non c'è protezione che tenga....questa regge allo spippolatore comune ed
all'amministartore di sistema impiccione....ai lamer ed ai troll....ad un
vero cracker no!....basta disassemblare l'exe e cuccarsi la password del
blowfish...a quel punto la tua app diventa anche un keygen!
ma se faccio un programma che smuove 'sta gente a crakkare un mio
prog....beh son quasi orgoglioso!...vuol dire che ho fatto successo!
-- 
------------------------------------------------
Sito web: 
http://www.martek.it

 visto che c'è.....perchè non sfruttarlo?
Il problema è che nel mio caso non c'è! 

 Il problema è che nel mio caso non c'è!
Fattelo!
un textfile con un record random va altrettanto bene!
IMHO
scrivere nel registro se posso lo evito...o meglio....lo faccio....
eredito un brutto vizio di mamma M$ ....ci metto le opzioni che l'utonto si
modifica
o gli ultimi files aperti.....
nulla toglie di continuare questo brutto vizio e considerare record di
database alcune chiavi....vabbe!
cmq....se devi verificare roba strana nel registro....ti conviene fare una
"parte" della tua app standard come "server" e FAR ACCEDERE solo quella
.....si parla sempre comunque di una applicazione che ha il privilegio di
accedere al registro....
io ho visto casi che l'admin...giustamente ha "blindato" l'app in dir ben
specifiche...senza tanti svirgolamenti.....
ma scusa un bel txt file nella dir di installazione non va bene?...che c'è
di sbagliato? se l'implementazione è fatta in un certo modo......lo possono
anche copiare....l'app funziona solo su quel pc!...basta prendere un
algoritmo di criptazione ben fatto e una pw non banale!
