Sistema server client in .Net

0

Non sto chiedendo codice ma piuttosto idee di design. Sto cercando di sviluppare un nuovo sistema per saperne di più sullo sviluppo client / server.

Avrei 3 sistemi:

Client 1 : Client

Server 1 : Server

DB Server 1: DB Server

Svilupperei un'applicazione server e un'applicazione client

Quello che succede è che la mia idea sarebbe di usare l'autenticazione DB dove i client hanno effettivamente diversi diritti di accesso che sono memorizzati in una tabella DB sul server DB.

Tuttavia, i diversi diritti di accesso avrebbero accesso a diverse funzionalità nell'applicazione. Ad esempio, un superutente eseguirà l'accesso con il proprio account inviando i dati dal client all'applicazione Server in esecuzione sul Server 1, che quindi controllerà la tabella dei superuser nel DB per verificare se l'account esiste.

La mia idea iniziale consisterebbe nel mandare l'oggetto account al client in cui l'applicazione client controllerebbe il tipo di account a cui appartiene e visualizzerà effettivamente il modulo / interfaccia utente corrispondente all'utente.

Tuttavia, questo approccio non sembra molto fattibile in quanto sembra troppo fragile e incorpora un cattivo design.

Forse qualcuno potrebbe darmi un'idea migliore su come affrontare questo problema.

Riepilogo: sarebbe simile a un'applicazione client server, ma diversi tipi di utenti potrebbero avere diritti e caratteristiche differenti.

    
posta aceminer 22.08.2013 - 13:13
fonte

1 risposta

3

La tua idea iniziale mi sembra OK. In un modo o nell'altro, il client deve rispondere all'appartenenza al ruolo e inviare le informazioni sull'appartenenza al ruolo è una soluzione al problema. In realtà, probabilmente è una soluzione semplice ed efficace.

Un altro approccio sarebbe quello di implementare qualche inversione dei modelli di controllo e semplicemente lasciare che il server istruisca il cliente su ciò che deve essere visualizzato come una cosa ovvia. In base a questo modello, il client non sa nulla dei dettagli dell'interfaccia utente e visualizza sempre la GUI a cui il server lo istruisce. Le modifiche nella GUI potrebbero essere basate sull'appartenenza al ruolo, quindi, o su qualsiasi altra situazione rilevata dal server (ad esempio, cambiamenti delle politiche globali, stato del servizio, ecc.) Ciò è più complicato, tuttavia, e potrebbe non essere adatto al tuo situazione.

In ogni caso, tuttavia, una cosa è molto importante: assicurati sempre che il controllo degli accessi venga eseguito sul server anche se è stato teoricamente già verificato sul client. Non affidarsi semplicemente all'input o alle azioni del client perché si presuppone che tali controlli siano già stati eseguiti correttamente e correttamente: potrebbero essere falsificati da attori malintenzionati o semplicemente riflettere informazioni sulle autorizzazioni non aggiornate. Questo vale per entrambi i modelli.

    
risposta data 22.08.2013 - 18:48
fonte

Leggi altre domande sui tag