Quote Originariamente inviata da Fractals87 Visualizza il messaggio
Ciao a tutti,

Mi sto approcciando ad un applicativo web WebForm con entity framework con approccio codefirst.
Vi porto un esempio per capire come modellare le classi e metodi secondo la vs. esperienza.
Mi ritrovo nell'evento di login button click

codice:
        protected void LoginButton_Click(object sender, EventArgs e)
        {
            GeBBContext db = new GeBBContext();
            User userConnected = db.Users.Where(user => user.UserName == UserName.Text).FirstOrDefault();

            if (userConnected == null) {
                FailureText.Text = "Utente o Password non corretti";
            }
            else
            {
                if (userConnected.Password == User.EncryptPassword(Password.Text)) {
                    if (userConnected.PasswordExpired <= DateTime.Now)
                    {
                        Response.Redirect("ChangePassword.aspx");
                    }
                    else
                    {
                        Response.Redirect("Index.aspx");
                    }
                }
                else
                {
                    FailureText.Text = "Utente o Password non corretti";
                }
            }
        }
Da quanto ho imparato la logica mi suggerisce di creare il dbContext all'evento e poi tramite linkq recuperare un utente data lo username.

poi sempre all'interno del bottone creare la logica di autenticazione.

Secondo voi serebbe stato meglio creare un metodo all'interno della classe user "autentica" passando user e password inseriti e restituire qualcosa?
Oppure secondo voi è l'approccio giusto.
Ciao.
Dipende... In teoria potrebbe essere corretto utilizzare un metodo di Autenticazione nella classe utente, ma se poi vuoi utilizzare le stesse classi per lavorare in un contesto che non prevede Autenticazione? Oppure la prevede "differente da quella utilizzata e magari non puoi utilizzare gli stessi riferimenti? In quel caso a pare mio sarebbe meglio lasciare più pulite possibili le classi modello che andrai ad utilizzare in altro ambiti, e la parte di Autenticazione lasciarla fuori (legata all'ambito che userai di volta in volta).