15 messaggi dal 10 maggio 2012
Salve ragazzi,
premetto che sono ancora molto alle prime armi con ASP.Net per cui non me ne vogliate se dovessi fare domande banali.
Sto studiando, attraverso il libro della community il meccanismo di autenticazione in Asp.Net ma non riesco a capire un punto fondamentale.
Asp.Net mette a disposizione, tramite il tool aspnet_regsql un database (aspnetdb) utilizzabile per l' autenticazione degli utenti. La mia domanda è: Se io volessi evitare di utilizzare questo db e crearmi un mio database per la gestione degli accessi e quindi anche per la gestione di tutto il resto relativo all' applicazione mi converrebbe? E da dove dovrei partire?

Da quello che ho capito, tramite le membership è possibile raggiungere il mio obiettivo ma, quello che mi sfugge fondamentalmente è: Come va configurato il web.config per far si che si interfacci con il mio database in fase di autenticazione?

Ringrazio subito chi vorrà aiutarmi!!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,


Se io volessi evitare di utilizzare questo db e crearmi un mio database mi converrebbe?

Sì, così avresti il controllo sulla schema del database. Non sei costretto a convivere con tabelle create da aspnet_regsql.exe, se non vuoi.
Se scegli per questa strada, devi crearti un Membership provider personalizzato. Si tratta di creare una classe che derivi da MembershipProvider e di implementarne i metodi.
Qui trovi un articolo che ti guida passo passo, dalla creazione del database fino alla registrazione del tuo provider nel web.config
http://www.codeproject.com/Articles/165159/Custom-Membership-Providers

In alternativa puoi anche dare un'occhiata alla SimpleMembership, pensata per semplificare questo aspetto. Tutto di ciò di cui hai bisogno per iniziare è di una connection string e di una tabella in quel database che contenga i campi ID e Password.
http://www.codeguru.com/csharp/.net/net_asp/mvc/using-simplemembership-in-asp.net-mvc-4.htm
Se crei una nuova applicazione MVC4 usando il template "Internet application" troverai del codice di esempio pronto da usare.

ciao,
Moreno

Enjoy learning and just keep making
15 messaggi dal 10 maggio 2012
Grazie mille BrightSoul
tutto molto chiaro, approfondisco grazie ai link che mi hai suggerito.

Grazie ancora!
15 messaggi dal 10 maggio 2012
Scusami BrightSoul,
solo adesso ho avuto tempo e modo di continuare il mio studio e ho notato che i link che mi hai suggerito si riferiscono a progetti MVC nei quali si vuole implementare l' autenticazione. Posso comunque implementare quanto descritto anche in progetti WebForm?

Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

alsa ha scritto:

Posso comunque implementare quanto descritto anche in progetti WebForm?

Sì, la Membership API è nel core di ASP.NET, che è alla base sia dei progetti MVC che WebForms.
Creare un Membership provider personalizzato non è complicato, è solo un po' lungo per via del numero dei metodi da implementare. Il vantaggio lo avrai in un secondo momento, se vorrai iniziare ad usare i controlli di accesso per WebForms, come il CreateUserWizard, che si occupa del processo di iscrizione degli utenti.

Se tutte le funzionalità di Membership API non ti interessano o vuoi essere tu a gestire completamente le procedure di registrazione, allora puoi pur sempre scrivere un tuo sistema di gestione degli utenti. Dovrai solamente configurare la FormsAuthentication nel web.config come vedi fare in questo esempio:
http://msdn.microsoft.com/en-us/library/xdt4thhy%28v=vs.90%29.aspx
Quando si clicca il bottone "Log On" dell'esempio, questo codice andrà in esecuzione:
 If ((UserEmail.Text = "jchen@contoso.com") And _
            (UserPass.Text = "37Yj*99Ps")) Then
      FormsAuthentication.RedirectFromLoginPage _
           (UserEmail.Text, Persist.Checked)
    Else
      Msg.Text = "Invalid credentials. Please try again."
    End If

Tu hai ovviamente la facolta di cambiare quell'If e fare in modo che username e password vengano letti da database. Il metodo FormsAuthentication.RedirectFromLoginPage creerà un cookie di autenticazione per l'utente. In tutte le successive richieste al sito, grazie a quel cookie, l'utente risulterà loggato (e potrai verificarlo dalla proprietà User.Identity.IsAuthenticated) e potrai leggerne il nome da User.Identity.Name.
Quando vuole fare il Logout, invoca il metodo FormsAuthentication.SignOut() come vedevi nell'esempio di cui sopra.


ciao,
Moreno
Modificato da BrightSoul il 02 ottobre 2013 21.20 -

Enjoy learning and just keep making

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.