J'ai créé un fournisseur d'appartenances personnalisé et il est plus pratique pour moi d'opérer sur MembershipUser.ProviderUserKey
plutôt que sur UserName. Donc, pour récupérer ProviderUserKey
j'effectuer un tel code:ASP.NET User.Identity.Name alternative?
if (User.Identity.IsAuthenticated)
{
int UserID = (int)Membership.GetUser(User.Identity.Name).ProviderUserKey;
}
Cependant, lorsque la méthode GetUser()
est exécutée, les données utilisateur doivent être extraites de la base de données et cela est me casser les pieds. C'est gaspillage inutile de temps de serveur, peu importe combien de temps cette fois est, je voudrais l'éviter.
Y at-il un autre moyen d'obtenir ProviderUserKey
d'une manière plus pratique, comme dans User.Identity.Name
cas?
Je voudrais entendre vos idées. Comment résolvez-vous ce problème sur vos pages Web?
Merci.
Merci, pourriez-vous me signaler quelques informations pertinentes sur la façon de procéder? Tout ce que j'ai trouvé concerne. NET 1.1 et je voudrais le faire dans la version 3.5 du framework. – Wodzu
Voici [un article] (http://www.xoc.net/works/tips/forms-authentication.asp) qui illustre comment utiliser GenericPrincipal et stocker des informations supplémentaires dans le cookie. L'idée est de remplacer HttpContext.Current.User par cette entité personnalisée afin qu'elle soit accessible partout. –
Merci, mais pour autant que je sache, cet exemple est basé sur la création de contrôles propres loign. Je devrais remplacer le comportement standard ... Que faire si j'utilise les contrôles de connexion standard. Est-ce que je ne peux pas étendre une classe pour exposer une propriété de plus pour la renvoyer plus tard dans mon application de manière pratique? – Wodzu