ci sono un modo pochi a scuoiare questo gatto, ma direi che il fissaggio informazioni del profilo per l'utente sarebbe la più elegante.
Avrete bisogno di un provider di profili che permetta di mantenere i dati del profilo dell'utente. È possibile utilizzare SqlProfileProvider per SQL Server, ma si consiglia di consultare i provider Microsoft ASP.NET Universal ref: http://www.nuget.org/packages/Microsoft.AspNet.Providers
Segue una copia e incolla svergognata di Scott Hanselman. Diciamo che si desidera tenere traccia di compleanno di un utente:
public class MyCustomProfile : ProfileBase
{
public DateTime? Birthdate {
get { return this["Birthdate"] as DateTime?; }
set { this["Birthdate"] = value; }
}
}
allora si sarebbe eresse nel web.config:
<profile inherits="MyApp.Models.MyCustomProfile" defaultprovider="DefaultProfileProvider"></profile>
Infine, si può tirare nel profilo personalizzato dell'utente corrente con:
var customProfile = HttpContext.Profile as MyCustomProfile;
DateTime? birthday = customProfile.Birthdate;
Dovrai impostare il tuo archivio dati, ma questo è principalmente ciò che deve essere fatto. È possibile trovare la piena nitidezza nel blog di Scott Hanselman: http://www.hanselman.com/blog/IntroducingSystemWebProvidersASPNETUniversalProvidersForSessionMembershipRolesAndUserProfileOnSQLCompactAndSQLAzure.aspx
fonte
2013-08-29 12:18:56
** [Controlla questo messaggio. Potrebbe essere utile?] (Http://stackoverflow.com/a/17199709/2015869) ** –
Grazie per l'input. Ma ho letto da qualche parte che "TempData è pensato per essere un'istanza molto breve, e dovresti usarlo solo durante le richieste attuali e successive". C'è un modo per mantenere i dati in una determinata sessione utente? –
Si sta utilizzando l'autenticazione di Windows o l'autenticazione dei moduli? Hai un database? –