Je suis en train de mettre en œuvre ma propre implémentation de GenericIdentity mais continuer à recevoir l'erreur suivante quand il tente de charger les vues (j'utilise asp.net MVC):SerializationException avec GenericIdentiy personnalisé?
System.Runtime.Serialization.SerializationException was unhandled
by user code Message="Type is not resolved for member
'OpenIDExtendedIdentity,Training.Web, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null'."
Source="WebDev.WebHost"
J'ai fini avec la classe suivante:
[Serializable]
public class OpenIDExtendedIdentity : GenericIdentity {
private string _nickName;
private int _userId;
public OpenIDExtendedIdentity(String name, string nickName, int userId)
: base(name, "OpenID") {
_nickName = nickName;
_userId = userId;
}
public string NickName {
get { return _nickName; }
}
public int UserID {
get { return _userId; }
}
}
Dans mon Global.asax je lis valeur sérialisée d'un cookie dans un flux de mémoire et l'utiliser ensuite pour créer mon objet OpenIDExtendedIdentity. Je me suis retrouvé avec cette tentative de solution après d'innombrables essais de toutes sortes. Cela fonctionne correctement jusqu'au moment où il essaie de rendre les vues.
Ce que je tente essentiellement d'atteindre est la capacité à effectuer les opérations suivantes (Lorsque vous utilisez le gestionnaire de rôles par défaut de asp.net):
User.Identity.UserID
User.Identity.NickName
... etc.
J'ai énuméré quelques-unes des sources que j'ai lire dans ma tentative pour résoudre ce problème. Certaines personnes ont rapporté une erreur de Cassini, mais il semble que d'autres ont eu du succès dans l'implémentation de ce type de fonctionnalité personnalisée - ce qui est stupéfiant pour moi.
- http://forums.asp.net/p/32497/161775.aspx
- http://ondotnet.com/pub/a/dotnet/2004/02/02/effectiveformsauth.html
- http://social.msdn.microsoft.com/Forums/en-US/netfxremoting/thread/e6767ae2-dfbf-445b-9139-93735f1a0f72