36 messaggi dal 07 febbraio 2006
Ciao ragazzi!

Sto usando per la prima volta la formsAuthentication e ho qualche problema.
Devo permettere l'accesso a un sito solo a determinati utenti che ho salvato direttamente nel db SqlServer, quindi non si tratta di dare la possibilità ad un utente di registrarsi e creare nuovi utenti: perciò niente membership ma uso direttamente i metodi di FormsAuthentication.

Ho impostato (credo correttamente) il web.config con le righe seguenti

<authentication mode="Forms">
<forms loginUrl="index.aspx"></forms>
</authentication>

e il controllo Login come segue

<asp:Login DestinationPageUrl="PresentationLayer/Home.aspx" ID="Login1" FailureAction="RedirectToLoginPage" runat="server" OnAuthenticate="Login1_Authenticate"></asp:Login>

Ho la pagina di login dalla quale intercetto l'evento Authenticate e vado a controllare nel db se l'utente è esistente: nel caso i dati siano esatti salvo i dati che mi servono e chiamo il metodo RedirectFromLoginPage, altrimenti chiamo il metodo RedirectToLoginPage. Posto il codice per chiarezza:

Dim utente As New GestioneUtenti
Dim ds As New Data.DataSet

ds = utente.SelectByLogin(Login1.UserName, Login1.Password)

If ds.Tables(0).Rows.Count = 0 Then
FormsAuthentication.RedirectToLoginPage()
Else
Session("IdUtente") = ds.Tables(0).Rows(0).Item("IdUtente")
Session("Centro") = ds.Tables(0).Rows(0).Item("Centro")
Session("IdCentro") = ds.Tables(0).Rows(0).Item("IdCentro")
Session("Ruolo") = ds.Tables(0).Rows(0).Item("Ruolo")
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, False)
End If

A me sembra tutto ok ma il RedirectFromLoginPage mi riporta alla pagina di Login dandomi anche il messaggio di errore.dove ho sbagliato?

Inoltre mi chiedevo se mi conviene usare le Session per mantenere memorizzate alcune informazioni sull'utente (tra cui anche il ruolo) o se devo crearmi un profile personalizzato?

Grazie, ciao.
179 messaggi dal 12 luglio 2007
Ciao,
secondo me non puoi usare una FormsAuthentication senza usare un membership provider perchè gli oggetti di autenticazione vengono gestiti proprio dal motore di membership di asp. O fai tutto in manuale creando una pagina di login e poi gestendo il response.redirect o, meglio ancora usi un provider di membership.
Quest'ultimo non serve solo se devi permettere la gestione degli utenti. i vantaggi sono molteplici come l'utilizzo dei controlli di autenticazione, la gestione dei ruoli, l'accesso a più applicazioni con un solo login. Certo, perdi un sacco di tempo la prima volta se vuoi crearti un tuo custom membership provider ma per i progetti successivi la strada è tutta in discesa e ti evita un sacco di altri problemi. Pensaci
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
Puoi scrivere l'errore?

Mi sembra che ti manchino alcuni attributi nella sezione forms del webconfig.

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.