[C#]Login degli utenti di una lan

giovedì 08 marzo 2007 - 09.26

fabele Profilo | Newbie

Ciao a tutti!!Avrei un problema....Io ho implementato una windows application che capta tutti gli utenti che si connetto a una rete locale e i pacchetti...Siccome il mio computer sarebbe il server vorrei che gli utenti per poter navigare in internet facessero un login, come si può realizzare?Avete delle idee?Sapete dove posso documentarmi?....Grazie mille a tutti!!!

Mato Profilo | Newbie

mah un po troppo generica come domanda ! ! !

Le vie che puoi seguire sono molte ed elenco alcune:

Se hai un router di "frontiera" allora puoi bloccarli li, e se il router te lo permette tale meccanismo dovrebbe gia essere implementato al suo interno.

Se il collegamento alla "rete" avviene tramite il tuo server e usi un applicativo Windows per intercettare i pacchetti allora lo devi convertire in uno "sniffer", verificare che l' IP terget non appartiene alla tua rete (fai delle liste) e in tal caso gestire i flag di vita (TTL) dei pacchetti TCP/IP per farli morire al server. In questo modo puoi gestirei i login veso l'esterno mediante le autorizzazioni oppure mediante liste create a priori degli utenti della rete.

Altra alernativa MOLTO in voga è quella di convertire il tuo applicativo windows in applicativo web e trasformare il tuo server in un web server.
In questo caso è semplice concedere autorizzazioni, e fare reindirizzamenti a seconda del ruolo dell'utente

queste sono tre possibili vie da seguire a seconda del livello del modello ISO/OSI

sul sito di MICROSOFT trovi di tutto di più

ciò che penso così è

fabele Profilo | Newbie

Grazie per l'attenzione!!Adesso mi spiego meglio.
Io ho implementato uno sniffer che mi capta tutti i client connessi alla mia rete e tutti i pacchetti...Questo l'ho implementato tramite le socket...Ora volevo che ogni nuovo client che si connette ad internet(e può connetersi solo tramite il mio computer) siccome io tramite il mio sniffer lo vedo voglio che faccia il login con uno username e password temporanei che gli ho dato io...E' tipo un internet cafè solo che il mio programma deve funzionare anche per WLAN...
Ovviamente questo è il primo pezzo del progetto perchè dopo dovrò implementare un proxy per far migrare tutto il traffico all'esterno, la parte gestionenale per la registrazione dei dati del cliente.
L'UNICA COSA CHE NON CAPISCO PER ORA E' PROPRIO IL LOGIN.
Spero di essermi spiegato meglio così puoi indirizzarmi verso la soluzione migliore....Grazie millle aspetto tue notizie!!!!

Mato Profilo | Newbie

se vuoi continuare a lavorare con i pacchetti tcp/ip allora la tua unica soluzione è la seconda, cioè fare in modo che i pacchetti vengano uccisi al tuo computer.

se riesci a intercettare i pacchetti nel momento in qui questi vengono reindirizzati allora non devi fare altro che azzerare il ttl del pacchetto.

per l'operazione di login la procedura più facile è fare delle liste contenenti l'ip della macchina che emette il pacchetto magari con il livello di autorizzazione con il quale tu decidi se azzerare o no il ttl del pacchetto.

tali liste le puoi creare sul server e aggiornarle ogni volta che una macchina si logga alla rete(magari tramite un servizio che trasferisce ,per esempio , tramite i socket l'utente che si è autenticato su quella macchina oppure un processo che si avvia in esecuzione automatica che chiede l'inserimento di uno username e password).

una volta avuta la lista sara sufficente consultarla per decidere se azzarare il ttl o fare altre operazioni sul pacchetto.

penso che la cosa piu difficile comunque sia la gestione del pacchetto piu che la creazione di un form di login che aggiorna su un server tramite socket una lista in un file di testo
ciò che penso così è

fabele Profilo | Newbie

Benissimo mi hai dato delle informazioni importanti...Però adesso quello che non capisco ancora è:
Un utente si è fatto dare lo username e la password da me, prende il suo portatile, attiva una connessione senza fili e trova la rete wireless che ho creato io, apre tipo explorer, scrive ad esempio www.google.it, gli deve apparire tipo una pagina dove deve inserire lo username e la password che gli ho dato io per poter proseguire...Io che dal mio computer tramite il mio sniffer vedo il nuovo client e i suoi pacchetti come faccio ad inviargli questa pagina per farlo loggare prima di accedere a internet?come faccio tramite le socket ad inviargli questa pagina? Oppure non so se c'è un altro sistema....Grazie mille!!!

Mato Profilo | Newbie

Allora. . . non puoi far interagire i socket con le pagine web perchè i primi appartengono al livello di trasporto e i secondi a quello applicazione.

Quindi se ragioni con i socket la cosa che mi viene in mente è quella di modificare l'ip del pacchetto che intercetti con quello del tuo server ( nel quale avrai creato una pagina web di login con un redirect alla pagina cercata dal client ), se il cliente non è già autenticato (sempre con il discorso delle liste che compilerai in fase di login).

In pratica devi modificare il pacchetto per trasformarlo in un qualche cosa che sembra indirizzato al tuo server.

non ho mai provato a realizzare un applicativo che smonta e ricostruisce il pacchetto tcp/ip per modificare l'ip target però mi sembra logico procedere come detto.

per una semplice pagina di login puoi semplicemente andare avedere sul sito della microsoft le tecniche di autenticazione form-based e li trovi esempi già fatti, ma questo dovrebbe essere il meno peggiore dei tuoi problemi rispetto a quello di dover spacchettare e reimpacchettare un tcp/ip, e reindirizzarlo all'ip della tua macchina piuttosto che a un altro.


ciò che penso così è

fabele Profilo | Newbie

Grazie mille per gli ottimi consigli....Adesso proverò a metterli in pratica!!!
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5