Aggiungere campi al CreateUserWizard

venerdì 07 settembre 2007 - 17.06

skater Profilo | Newbie

Ciao a tutti.. avrei la necessità di personalizzare un 'CreateUserWizard' inserendo informazioni aggiuntive a quelle di default.
Ho trovato come personalizzare il form, ma non ho capito nè come si fa nè dove andranno memorizzati i nuovi dati (che sarebbero nuove colonne della tabella aspnet_Users).
Dovrei inserire nuovi campi come Nome, Cognome, DataNascita, LuogoNascita, Sesso, CodFiscale,Indirizzo,Telefono.

Devo forse usare 'profile'?? Devo cominciare col modificare la base di dati??

Vi prego.. illuminatemi sul modo di procedere per fare cio!

grasias

gae58 Profilo | Senior Member

ciao per quel che ho capito io, devi modificare il web.config e nel wizard del createUser gestire i dati aggiuntivi. Legi qyualche tutorial che c'è in giro.

Poi puoi aprire le tabelle di ASPNET.DB e vedere dove va ad inserire i dati. Profiles

ciao

Gaetano

SharKMaN Profilo | Newbie

Tutto per te

'----------------------------
' MEMORIZZA DATI
'----------------------------

Dim SQL As String

Dim myConn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("LocalSQLServer").ConnectionString)

Dim myCmd As SqlCommand = New SqlCommand
myCmd.Connection = myConn

SQL = ""
SQL = SQL & "INSERT INTO TBL_UTENTE "
SQL = SQL & "(ID_LOCALE, ID_UTENTE, UTE_1, UTE_2, UTE_3, UTE_4, UTE_5, UTE_6, UTE_7, UTE_8, UTE_9, UTE_10, UTE_11, UTE_12, UTE_13, UTE_14, UTE_15) VALUES "
SQL = SQL & "(@ID_LOCALE, @ID_UTENTE, @UTE_1, @UTE_2, @UTE_3, @UTE_4, @UTE_5, @UTE_6, @UTE_7, @UTE_8, @UTE_9, @UTE_10, @UTE_11, @UTE_12, @UTE_13, @UTE_14, @UTE_15)"

myCmd.CommandText = SQL

myCmd.Parameters.Add("@ID_LOCALE", SqlDbType.VarChar).Value = UCase(Page.User.Identity.Name)
myCmd.Parameters.Add("@ID_UTENTE", SqlDbType.VarChar).Value = CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("UserName"), TextBox).Text.ToUpper
myCmd.Parameters.Add("@UTE_1", SqlDbType.VarChar).Value = CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("RagioneSociale"), TextBox).Text.ToUpper
myCmd.Parameters.Add("@UTE_2", SqlDbType.VarChar).Value = CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Indirizzo"), TextBox).Text.ToUpper
myCmd.Parameters.Add("@UTE_3", SqlDbType.VarChar).Value = CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Cap"), TextBox).Text.ToUpper

Try

myConn.Open()
myCmd.ExecuteNonQuery()
myConn.Close()

Roles.AddUserToRole(CreateUserWizard1.UserName, "ruolo_utente")

Catch

MsgBox("Errore durante la registrazione dell'utente" & vbCr & vbCr & Err.Number & " - " & Err.Description)

End Try

End Sub

A presto
Daniele

skater Profilo | Newbie

mille grazie per il codice... ma sono abbastanza nuovo su asp.net e non ho capito alcune cose. Innanzitutto:
-questo codice non usa <profile>. giusto?
-crea, invece, una tabella TBL_UTENTE. Che rapporot ha con la tabella aspnet_user creata automaticamente da WebDeveloper?

grasias

SharKMaN Profilo | Newbie

>mille grazie per il codice... ma sono abbastanza nuovo su asp.net
>e non ho capito alcune cose. Innanzitutto:
>-questo codice non usa <profile>. giusto?
>-crea, invece, una tabella TBL_UTENTE. Che rapporot ha con la
>tabella aspnet_user creata automaticamente da WebDeveloper?
>
>grasias

Nel primo post hai detto ... riesco a creare i campi nella CreateUserWizard ... ma non riesco a capire dopo come faccio a memorizzare i campi che ho inserito...

Il Codice che ti ho riportato... genera un record dove sono inclusi TUTTI i campi della CreateUserWizard...

Questo Codice non CREA una tabella... INSERISCE (INSERT INTO) un nuovo record nella tabella TBL_UTENTE

myCmd.Parameters.Add("@ID_UTENTE", SqlDbType.VarChar).Value = CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("UserName"), TextBox).Text.ToUpper

Come puoi notare trovi tante FindControl ... la FindControl ricerca nel CreateUserWizard (o in qualsiasi altro oggetto) la textbox che hai inserito... e ne estrae il valore... poi sarai te che dovrai inserirlo nella tua tabella tramite INSERT INTO

Non devi far altro che prendere il pezzo di Codice che ti ho postato... cambiare la INSERT INTO con i campi della tua tabella e cambiare i nomi che trovi tra doppio apice nella FindControl con quelli che tu hai scritto... fine...a quel punto memorizzi TUTTO ciò che hai inserito durante la Creazione di un nuovo utente...

La tabella ASPNET_USER non conviene modificarla, conviene invece relazionare tale tabella ad un'altra tabella (caso mio TBL_UTENTE) ove avrai il nome dell'utente e i suoi relativi dati, se invece vuoi generare il tutto sulla tabella ASPNET_USER nella INSERT INTO dovrai inserire al posto di TBL_UTENTE - ASPNET_USER

Ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5