Newsgroup: it.comp.www.asp
Titolo: ASP.NET controllo utente

Salve NG,
sto realizzando una applicazione un po' particolare.
La possono usare tutti, anche gli utenti anonimi che io "autentico"
automaticamente come Guest USER (UserID=0) e li faccio navigare in tutto
il sito ma mostrando solo i contenuti a loro permessi.
Gli altri utenti loggati con UserID > 0 possono accedere ad altri
contenuti, diversi in base allo userid.
Quindi non riesco ad immaginare come usare l'autenticazione di 
ASP.NET
.
Passiamo oltre...
Dopo aver richiesto username/password utilizzo una funzione che mi
restituisce un boolean... true = credenziali corrette.
Adesso... nel Classic ASP attraverso una variabile di sessione memorizzavo
lo UserID... e se la sessione scadeva, con un file in testa ad ogni
pagina, facevo il redirect verso la pagina di login... con il messaggio
"sessione scaduta".
Qual'e' il modo migliore per risolvere questa situazione in 
ASP.NET
 ???
Grazie a tutti.
Daniele Imberti
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Moderatore di it.comp.www.asp - Microsoft .NET MVP
http://www.aspitalia.com/
 Enjoy the .NET community!
http://www.dev2dev.it/
 La rete ha connesso nuove particelle!
http://www.extensible.it
 XML and beyond 

 voluto andare, con un redirect dopo il login stesso.
OK, mi sono studiato un po' la FormsAuthentication, ma non riesco a capire
una cosa. Devo obbligatoriamente portarmi dietro lo UserName ??? mi spiego
meglio... nelle tabelle del mio db ho molto spesso lo UserID come chiave,
dici che posso usare lo UserName e, nelle pagine in cui ho necessita',
andare a tradurre lo UserName in UserID (integer) ???
Adesso provo cosi'... una nuova lezione in piu'...
grazie e ciao


 Adesso provo cosi'... una nuova lezione in piu'...
:)


 login.
Cosa mi suggerisci per portarmi lo UserID anziche' lo UserName ???
La FormAuthentication mi presenta solo 
Page.User.Identity.Name
.
Oppure potrei scrivere delle stored procedure tipo:
SELECT * FROM Oggetti WHERE UserID=5
cosi':
SELECT * FROM Oggetti WHERE UserID=(SELECT UserID From Users WHERE
UserName='pippo')
Ma non so... secondo te quando si hanno diverse tabelle che si riferiscono
ad un utente come ci si deve comportare???  Usare UserID o UserName???
C'e' da dire una cosa... che se la sessione mi scade non e' detto che
anche l'autentica scada (credo di aver capito cosi')... quindi come
gestisco la scadenza delle session ??? Vorrei che quando una sessione
scade, e l'utente prova ad usare l'applicazione, venga rispedito alla
pagina di logon.
Spero di aver spiegato bene quello che intendo ;-)))
Grazie 1000


 pagina di logon.
imposti nell'evento SessionOnEnd il SignOut dell'autenticazione.
non ci ho mai provato ma probabilmente a rigor di logica funziona.
altrimenti imposti la scadenza del ticket di autenticazione dopo tot minuti, 
creando, come ti dicevo, un tuo oggetto GenericPrincipal con i roles.


 creando, come ti dicevo, un tuo oggetto GenericPrincipal con i roles.
mi rendo conto che l'uso dei roles mi e' molto utile, ad esempio in fase
di amministrazione dell'applicazione posso concedere solo agli utenti
amministratori di utilizzare le pagine contenute nella dir di
amministrazione in modo del tutto automatico.
Ho passato un paio d'ore per cercare di orientarmi ma non riesco a
focalizzare bene l'uso del GenericPrincipal.
In sostanza, alla prima pagina, nel login o nel global.asax, uso:
FormsAuthentication.SetAuthCookie(0, True) (metto UserID=zero)
in questo modo sono autenticato.
Ho inserito nella dir /AppAdmin un web.config con il deny a tutti e allow
a AppManager.
Non riesco pero' a trovare documentazione per dire che un utente
Page.User.Identity.Name
 fa parte di un ROLES.
Anzi... ho trovato... ma mi sembra un codice troppo pasticciato.
Hai la possibilità di postarmi del codice se non ne hai gia' messo giu'
??? O darmi una dritta su dove cercare.
Adesso che mi hai messo la pulce nell'orecchio devi aiutarmi!!!
;-)))
Tra omonimi.
Grazie Ancora


 ;-)))
http://www.microsoft.com/italy/net/business/netarchitect/SecNet.pdf
Oppure se DB tira fuori quell'articoletto che gli ho mandato... ;-)
Ciao
--
AZ

 Adesso che mi hai messo la pulce nell'orecchio devi aiutarmi!!!
non è un problema e cmq penso che martedì uscirà l'articolo a cui andrei 
faceva cenno nell'altro post :)
mi pare che comunque su 4guysfromrolla ci sia un articolo abbastanza ben 
fatto sull'argomento.
dovrebbe bastare fare una ricerca per "user roles 
ASP.NET
" in qualsiasi 
motore di ricerca per avere abbastanza informazioni.
btw, è più difficile a dirsi che a farsi, credimi, perchè creare un array di 
String e passarlo alla funzione non è la fine del mondo.
