Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202

    Asp.Net 4 WebForm MasterPage e ContentPage

    Ciao a tutti,

    Vi espongo il mio pensiero di come volevo agire molto probabilmente sbagliato.
    Ho creato una master page con due proprietà pubbliche
    Dim db as Database
    Dim user as User.
    I due oggetti sono due oggetti che ho costruito io.

    Pensavo che nelle varie contentPage queste due proprietà fossero accessibili ed invece no.

    E' più corretto che in ogni contentPage creo il mio oggetto db, oppure c'è un'altro modo??

    Grazie a tutti e spero di essermi spiegato.

    Paolo
    Che mestiere difficile.....essere da soli ancora di più

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    La masterpage viene ri-eseguita ogni volta che c'è un postback sulla pagina figlia, quindi creare le variabili nella masterpage vuol dire che ad ogni ingresso/postback nella pagina ricrei le variabili, non restano disponibili per le pagine seguenti.
    Se vuoi creare delle variabili globali da valorizzare poi e usare in tutte le pagine è meglio se usi il global.asa e/o le sessioni ma non te lo vedo bene con i database.... io apro e chiudo connessioni e creo recordset all'interno delle pagine.
    La stringa di connessione la puoi memorizzare nel web.config e la richiami nelle pagine (con google trovi tutto).
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    ok ho capito.
    Si la stinga di connessione la memorizzo nel web.config.
    Nello specifico la mia applicazione è composta da sue master page, una pubblica e l'altra pivata.
    Avevo pensato di inserire nella master page privata il seguente codice :

    Dim db As New db
    Dim user As New user
    user.db = db
    user.idSession = System.Web.HttpContext.Current.Session("idSession" )
    If user.Load() = False Then
    Response.Redirect("Login.aspx")
    End If

    In pratica vado ad inizializzare il db, e iniettarlo nella classe user dove poi controllo l'autenticazione.

    Dato che non posso farlo nella masterpage (e non mi pare che nel global.asa posso agevolmente identificare se la richiesta è una pagina pubblica o privata), mi resta solo di fare durante l'evento load di ogni pagina.
    Corretto?

    Grazie mille per l'aiuto.
    Che mestiere difficile.....essere da soli ancora di più

  4. #4
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    ok ho capito.
    Si la stinga di connessione la memorizzo nel web.config.
    Nello specifico la mia applicazione è composta da sue master page, una pubblica e l'altra pivata.
    Avevo pensato di inserire nella master page privata il seguente codice :

    Dim db As New db
    Dim user As New user
    user.db = db
    user.idSession = System.Web.HttpContext.Current.Session("idSession" )
    If user.Load() = False Then
    Response.Redirect("Login.aspx")
    End If

    In pratica vado ad inizializzare il db, e iniettarlo nella classe user dove poi controllo l'autenticazione.

    Dato che non posso farlo nella masterpage (e non mi pare che nel global.asa posso agevolmente identificare se la richiesta è una pagina pubblica o privata), mi resta solo di fare durante l'evento load di ogni pagina.
    Corretto?

    Grazie mille per l'aiuto.
    Che mestiere difficile.....essere da soli ancora di più

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    Non ho capito bene ma credo tu non abbia bisogno di verificare in ogni pagina i dati dell'utente: lo fai in una pagina specifica di login e poi valorizzi una session che verificherai sul load di ogni pagina...
    Nella login page (figlia della master pubblica) se passa i controlli imposti una session("logged") = true altrimenti la session("logged") = false; sul load della masterpage privata, se session("logged")=false fai il redirect sulla login page...
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  6. #6
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Si una cosa analoga.
    Io valorizza una Session("idSession") è una stringa casuale salvata sul cookie del client.
    La idSessione viene create al momento del login e salvata nel database sul record dell'utente che si è autenticato.

    Nella pagine figlie metto questa stringa all'interno della classe user.
    con il metodo load, carico i dati dell'utente (il quale viene caricato o tramite id o tramite idSession).

    Se lo trovo bene allora è autenticato, in caso contrario lo redirigo verso il login.

    Se non mi sono spiegato posto un po di codice.
    Che mestiere difficile.....essere da soli ancora di più

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.