|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2007
Città: San Benedetto del Tronto
Messaggi: 538
|
[Asp .NET]Gestire login con 3 tipi di utenti
Ho una web application che utilizza un db Access 2003. Username e Password dei diversi utenti si trovano nel database e sono previsti tre tipi di utenti: user1, user2, user3. In base al tipo di utente ci sono diversi privilegi.
Quindi ho bisogno di far si che sia possibile recuperare il tipo di utente che ha effettuato il login su ogni pagina del sito, per abilitare o meno le diverse funzionalità in base al tipo di utente. Ho bisogno quindi di creare una sessione dell'utente che fa login e tenerla finchè visualizza il sito, in modo che sul load di ogni pagina vado a controllare il tipo di utente e faccio le opportune modifiche. Come e dove posso memorizzare le informazioni (Username e tipo Utente) dell'utente che ha effettuato il login ? Anche prevenendo eventuali errori nel caso siano presenti più utenti nello stesso momento.
__________________
Ogni popolo ha il governo che si merita... Ho concluso trattative con: Aminopro, malag, oldfield |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: May 2006
Messaggi: 23
|
Ti conviene memorizzare tutto in sessione, più precisamente nell' ogetto Session.
Ti crei una classe Utente: Codice:
public class Utente { private string m_sUser; public string User { get{return m_sUser;} set{m_sUser = value;} } private int m_iTipoUtente; //eventualmente puoi usare un enum public int TipoUtente { get{return m_iTipoUtente;} set{m_iTipoUtente= value;} } } Creato l'oggetto lo metti in sessione così: Codice:
Utente oUtente= new Utente(); oUtente.User = "pipposantanastasamoto"; oUtente.TipoUtente = 1; HttpContext.Current.Session["CurrentUser"] = oUtente; Per recuperare le info sull'utente, nel Page_load delle pagine interessate.. Codice:
Utente oUtente = HttpContext.Current.Session["CurrentUser"] as Utente; if(oUtente.TipoUtente == 1) showPanel1(); if(oUtente.TipoUtente == 12) showPanel2(); L'oggetto Sessione è unico per ogni istanza del browser avviato che si collega alla tua web application, quindi nn si rischiano conflitti. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2007
Città: San Benedetto del Tronto
Messaggi: 538
|
credo proprio faccia al caso mio...domani lo provo ...
__________________
Ogni popolo ha il governo che si merita... Ho concluso trattative con: Aminopro, malag, oldfield |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2007
Città: San Benedetto del Tronto
Messaggi: 538
|
Ottima soluzione. Funziona. Grazie mille !!!
__________________
Ogni popolo ha il governo che si merita... Ho concluso trattative con: Aminopro, malag, oldfield |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:29.