126 messaggi dal 05 agosto 2013
Salve a tutti.
Visual Studio 2017 mi propone un gestione utenti, per il mio sito, dove per registrarsi bisogna specificare solo email e password.
Ma se in volessi, in fase di registrazione, chiedere anche cognome e nome come posso modificare l'applicationuser()?
Inoltre per relazionare la tabella degli utenti ad altre tabelle ho bisogno di avere a disposizione l'ID dell'utente che si è appena loggato o registrato.
Vi sarei davvero grati se mi aiutaste a risolvere questo problema. Non potrei, altrimenti, andare avanti col mio progetto
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
qui su aspitalia trovi degli articoli-guida su ASP.NET Identity.

Se usi ASP.NET "tradizionale" comincia da qui:
http://www.aspitalia.com/articoli/asp.net4.5.1/security-asp.net-mvc-identity.aspx

Se usi ASP.NET Core trovi invece un articolo specifico che riguarda la personalizzazione. I concetti espressi qui sono validi in qualche misura anche per ASP.NET tradizionale.
http://www.aspitalia.com/articoli/asp.net-core/personalizzare--aspnet-core-identity.aspx


Comunque, se stai cominciando adesso a sviluppare una nuova applicazione ti consiglio di partire con ASP.NET Core.

ciao,
Moreno
Modificato da BrightSoul il 26 gennaio 2019 11.10 -

Enjoy learning and just keep making
126 messaggi dal 05 agosto 2013
Sto cercando di studiare il link che mi hai suggerito.
Ma la prima cosa che noto è che nel progetto MVC che si va a creare non c'è il database e la cartella ACCOUNT.
Io uso Visual studio 2017.
E comunque in ogni caso, poiché me lo voglio studiare bene e con calma, in primis, mi servirebbe sapere (così nel frattempo procedo con il mio attuale progetto) come, dopo la fase di registrazione (register.aspx) o di login (login.aspx), posso recuperare l'ID utente (dalla tabella AspNetUsers) per usarlo nelle SUB "Page_Load" di altre pagine aspx.
Ti chiedo scusa sin da ora se molto probabilmente ti chiederò frequentemente aiuto.
Impaziente di una tua risposta, ti saluto.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
l'id dell'utente non lo ottieni dal database ma con User.Identity.Name. Ad esempio, nel Page_Load metti:
string userId = null;
if (User.Identity.IsAuthenticated)
{
  userId = User.Identity.Name;
}


Con ASP.NET Identity, l'id dell'utente non è un numero autoincrementante ma il suo indirizzo email. Quindi è una stringa.

ciao,
Moreno

Enjoy learning and just keep making
126 messaggi dal 05 agosto 2013
Se metto userid in questo modo
Dim cm1 As New SqlCommand("SELECT username,cognome,nome,credito,email FROM aspnetusers WHERE email =" & userId, cn)

il sistema mi segnala questo errore

The multi-part identifier "tizio.caio@tiscali.it" could not be bound.
Come posso fare?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
non fare SELECT sulla tabella aspnetusers. Tutti i dati inerenti all'utente si recuperano usando lo UserManager. Leggi questo script di Marco che ti mostra sia come personalizzare l'account che recuperare le informazioni con il metodo FindByNameAsync.
http://www.aspitalia.com/script/1176/Memorizzare-Informazioni-Personalizzate-Account-ASP.NET-Identity.aspx

ciao,
Moreno

Enjoy learning and just keep making
126 messaggi dal 05 agosto 2013
In realtà io, attraverso l'ID dell'utente (si ok la sua email), devo gestire alcune tabelle per estrapolare dei record relativi a quell'utente o inserire record sempre relativi a quell'utente.
Ad Esempio: visualizzare tutte le prenotazioni (inserite in opportuna tabella) effettuate dall'utente. Oppure, ovviamente, inserirne una nuova di prenotazione.
inoltre, visto che in fase di registrazione dell'utente mi propone solo l'email e la password, ho creato una pagina aspx ("modifica profilo") nella quale vado a definire i valori per altri campi del record (che precedentemente ho inserito nella tabella ASPNETUSERS, quali il cognome e nome, ad esempio.
Come ne esco fuori da questo pantano?
11.886 messaggi dal 09 febbraio 2002
Contributi
Facendo delle query SQL puoi certamente accedere ai dati situati in altre tabelle relazionate ad aspnetusers. È una cosa che già sai fare quindi dovresti riuscirci. Qual è l'intoppo, esattamente?

Comunque, se hai tempo da destinare allo studio, dovresti provare ad accedere al database con Entity Framework, che è usato da ASP.NET Identity come tecnologia di persistenza dei dati. Ad esempio, la classe ApplicationUser è appunto un'entità gestita da Entity Framework e potresti creare delle altre entità relazionate a essa.


Come ne esco fuori da questo pantano?

Non so, probabilmente affiancandoti a una persona che ha già esperienza in queste tecnologie, oppure destinando tempo all'autoformazione, prima di procedere con un progetto reale.

ciao,
Moreno

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.