319 messaggi dal 05 agosto 2005
Ciao Ragazzi,

Sto provando a recuperare lo UserId degli utenti logati nel mio sito.
In VB.net ho piazzato nell'evento del PageLoad questo codice:



Dim UserID As String

UserID = Membership.GetUser.ProviderUserKey().ToString


o



Dim UserID As String
Dim MemUser As MembershipUser

MemUser = Membership.GetUser
UserID = MemUser.ProviderUserKey.ToString



In entrambi i casi, ho questo errore:


InvalidCastexception was unhandled by user code

When casting from a number, the number must be a value less then infinity





Cosa c'è di sbagliato nel codice?

Grazie

Marco


GetUser non dovrebbe prendere come argomento il nome dell'utente?

comunque controlla sempre che il riferimento restituito dal metodo non sia nullo

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
319 messaggi dal 05 agosto 2005
Questo è l'errore che mi da il MemUser = Membership.GetUser:


System.InvalidCastException was unhandled by user code
Message="Specified cast is not valid."
Source="System.Data"
StackTrace:
at System.Data.SqlClient.SqlBuffer.get_SqlGuid()
at System.Data.SqlClient.SqlDataReader.GetGuid(Int32 i)
at System.Web.Security.SqlMembershipProvider.GetUser(String username, Boolean userIsOnline)
at System.Web.Security.Membership.GetUser(String username, Boolean userIsOnline)
at System.Web.Security.Membership.GetUser()
at Account_Details.Page_Load(Object sender, EventArgs e) in C:\Documents and Settings\mbizzaro\My Documents\Personal\Site_One\15_01_2008\Site_One\Personal_Account\Account_Details.aspx.vb:line 10
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
non ricordavo che esiste un overload del metodo che restituisce l'utente loggato.

quindi prima domanda sei loggato quando esegui quel metodo?

l'oggetto MembershipUser che restituisce è null?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
319 messaggi dal 05 agosto 2005
Marco,

Ho risolto il problema con una query al DB, dove vado a prendermi lo UserId dello username dell'utente loggato.

Grazie lo stesso

Marco
bhe l'errore comunque è strano e soprattutto fai un giro che non è necessario, perdendo di fatto ogni beneficio dell'utilizzo delle membership

il metodo GetUser dovrebbe restituirti l'istanza di MembershipUser che rappresenta l'utente loggato, qualcosa cge non va ci deve essere

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
122 messaggi dal 15 gennaio 2008
con ASP.NET e C# il codice

label1.Text = Membership.GetUser().ToString();


mi restituisce correttamente il nome dell'utente loggato.

Ma se invece del nome volessi lo UserID (chiave primaria che identifica univocamente l'utente)?


Grazie
Modificato da Yield il 17 gennaio 2008 14.22 -
dovrebbe essere sufficiente:

label1.Text = Membership.GetUser().ProviderUserKey.ToString();

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

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.