Ho un'app di base MVC 2 beta in cui sto cercando di implementare una classe Identity e Principal personalizzata.Implementazione di un'identità personalizzata e IPrincipal in MVC
Ho creato le mie classi che implementano le interfacce IIdentity e IPrincipal, le ho istanziate e quindi assegnato l'oggetto CustomPrincipal al mio Context.User in Application_AuthenticateRequest del Global.asax.
Tutto questo ha esito positivo e gli oggetti sembrano buoni. Quando inizio a eseguire il rendering delle viste, le pagine non stanno funzionando. Il primo errore è nella visualizzazione predefinita LogoOnUserControl nella seguente riga di codice:
[ <%= Html.ActionLink("Log Off", "LogOff", "Account") %> ]
Se tiro questo fuori non riesce quindi su una diversa "Html.ActionLink" linea di codice.
L'errore che ricevo è:
Un'eccezione di tipo 'System.Runtime.Serialization.SerializationException' verificato in WebDev.WebHost40.dll ma non è stata gestita nel codice utente
Informazioni aggiuntive: il tipo non è risolto per il membro 'Model.Entities.UserIdentity, Model, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null'.
Esistono alcune proprietà aggiuntive che devo implementare nella mia identità per poter utilizzare un'identità personalizzata in MVC? Ho provato ad implementare [Serializable()] nella classe Identity ma non sembra avere un impatto.
UPDATE: Ho provato 3-4 modi alternativi di implementarlo ma non riesco ancora con lo stesso errore. Se uso direttamente le classi GenericIdentity/GenericPrincipal non fa errore.
GenericIdentity ident = new GenericIdentity("jzxcvcx");
GenericPrincipal princ = new GenericPrincipal(ident, null);
Context.User = princ;
Ma questo mi porta da nessuna parte poiché sto cercando di utilizzare il CustomIdentity per tenere un paio di proprietà. Se si implementano le interfacce IIdentity/IPrincipal o si eredita GenericIdentity/GenericPrincipal per CustomIdentity/CustomPrincipal, l'errore originale sopra riportato non riesce.
Re: voto up ... Sei anche vedendo un problema simile? – Jay