+ Rispondi al Thread
Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 15 su 15

Discussione: Utenti in conflitto

  1. #11
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...nella master puoi avere una property pubblica che memorizza nella sessione l'username dell'utente che si è loggato...

  2. #12
    Renero non è in linea Novello
    Post
    47
    mi faresti un esempio gentilmente??? cioè come sistemo il codice che ho postato prima??? ti ringrazio immensamente..
    Ultima modifica di Renero; 07-05-2008 18:15 

  3. #13
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ....posso anche farti un esempio ma ti conviene studiare per benino(msdn, manuali, prove ecc) altrimenti altro che esempi...come ti dicevo la cosa si può gestire in un diversi modi...un modo abbastanza "bovino", ma con un minimo di programmazione ad oggetti potrebbe essere il seguente.
    Una classe User(che ho chiamato UserTest) composta da due property che memorizzano in Session l'username e la password dell'utente loggato, ed un metodo che verifica se quell'utente è registrato sul db:
    codice:
    public class UserTest
        {
            public string CurrentUserName
            {
                get
                {
                    if (!IsSessionUserNull)
                        return HttpContext.Current.Session["User"].ToString();  
                    return string.Empty;
                }
                set
                {
                    HttpContext.Current.Session["User"] = value;
                }
            }
    
            public string CurrentPassword
            {
                get
                {
                    if (!IsSessionUserNull)
                        return HttpContext.Current.Session["Password"].ToString();
                    return string.Empty;
                }
                set
                {
                    HttpContext.Current.Session["Password"] = value;
                }
            }
    
            public bool IsSessionUserNull
            {
                get
                {
                    return HttpContext.Current.Session["User"] == null || HttpContext.Current.Session["User"].ToString() == string.Empty;
                }
            }
    
            public bool Validateuser(string username, string password)
            {
                bool result = false;
                //Verifica se esiste sul db l'utente dato l'username e la password
                result = true; //metti il tuo codice di verifica
                if (result)
                {
                    CurrentUserName = username;
                    CurrentPassword = password;
                }
                return result;
            }
        }
    Per usare la classe in questione, per esempio nella web form x:
    codice:
    UserTest validateUser = new UserTest();
    //Verifico se le credenziali sono registrate sul db
    bool validate = validateUser.Validateuser("username", "password");
    if (validate)
    {
      //loggato
    }
    else
    {
      //da sbattere fuori
    }
    Se invece vuoi conoscere le credenziali dell'utente una volta loggato:
    codice:
    UserTest user = new UserTest();
    string username = user.CurrentUserName;
    string password = user.CurrentPassword;

  4. #14
    Renero non è in linea Novello
    Post
    47
    Grazie mille,
    ma ho risolto anke se non so se era infondo la soluzione migliore utilizzando i cookie
    es.

    publicpartialclassMasterPage : System.Web.UI.MasterPage
    {


    protectedvoid Page_Load(object sender, EventArgs e)
    {
    if (Request.Cookies["nomecookie"]!=null)
    {
    if (Request.Cookies["nomecookie"]["utente"]!=null)
    Label_nomeutente.Text = Request.Cookies["nomecookie"]["utente"];
    }

    if (Label_nomeutente.Text!="Utente")
    {

    Labelloggato.Text =
    "Utente connesso: ";
    Labelloggato.Visible =
    true;
    Label_nomeutente.Text = MasterPage.nome_utente;
    Label_nomeutente.Visible =
    true;
    accesso.Text =
    "LOGOUT";}
    }
    ecc... ecc..

    mentre in un altra pagina ad esempio
    protected void Page_Load(object sender, EventArgs e)
    {
    if (Request.Cookies["nomecookie"] != null)
    {
    if (Request.Cookies["nomecookie"]["utente"] != null)
    Label2.Text = Request.Cookies["nomecookie"]["utente"];
    }
    if (Label2.Text != "Utente")
    {
    Label_title.Visible = false;
    Label1.Text = "L'utente " + Label2.Text + " è già registrato.";
    Panel1.Visible = false;
    }
    ecc..ecc..

  5. #15
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...è un'altra soluzione(non c'è codice "riutilizzabile" a differenza di quella che ho postato io, ma soprattutto da quello che vedo la logica di autenticazione è incapsulata nella master page...mah)...ad ogni modo nel tuo caso dato che stai sviluppando in asp.net 2.0 potevi(altra soluzione) far riferimento alle classi membership e roles:
    Aree di accesso protette con ASP.NET 2.0: Membership e Roles API

+ Rispondi al Thread
Pagina 2 di 2 primaprima 12

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi