Pouvez-vous étendre HttpContext.Actuel.De l'utilisateur.Propriétés identité
Est-il un moyen de remplacer HttpContext.Current.User.Identity
ajouter une autre propriété (nom d'écran)?
Mon application utilise Identity
et j'ai laissé l'identité unique en tant que e-mail. - Je stocker les données utilisateur comme prénom et le nom dans une autre "Profile"
table. Est-il un moyen de stocker cette information quelque part dans HttpContext.Current
?
Il n'a pas nécessairement besoin d'être dans User
. J'ai eu une recherche et a remarqué il y a un HttpContext.Current.ProfileBase
. Vous ne savez pas comment l'utiliser si - et je ne veux vraiment pas tous les excès des trucs de base qui vient avec.
Comme je comprends que vous avez autre table avec d'autres données de l'utilisateur. Et vous voulez récupérer de l'utilisateur actuel des données. Suis-je le droit? Êtes-vous à l'aide de Entity Framework? Et la méthode que vous préférez pour stocker les données d'une autre table?
Depuis que vous utilisez Asp.Net l'Identité, la façon de le faire est avec des Réclamations. Voir ma réponse ci-dessous.
Merci, je suis en train de tester les réponses ce soir et devra accepter un puis
User
est vraiment juste un IPrincipal
et Identity
est juste IIdentity
. Vous pouvez facilement créer votre propre mise en œuvre de User
avec la mise en œuvre de Identity
. Ils ont juste besoin de respecter les interfaces.Depuis que vous utilisez Asp.Net l'Identité, la façon de le faire est avec des Réclamations. Voir ma réponse ci-dessous.
Merci, je suis en train de tester les réponses ce soir et devra accepter un puis
OriginalL'auteur user2330270 | 2015-08-12
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez Asp.Net l'Identité, c'est très facile à faire avec des réclamations.
Dans votre
SignInAsync
de la méthode (ou, où que vous créez les revendications d'identité), ajouter leGivenName
etSurname
types de revendications:Ensuite, vous utilisez une méthode d'extension pour
IIdentity
à tirer de l'information des revendications d'identité:Puis, dans votre application (dans votre contrôleur ou de la vue), il vous suffit de faire:
Name
propriété?le
Name
propriété de quoi? Pouvez-vous donner plus de détails?Le
HttpContext.Current.User.Identity.Name
. Voir aussi à cette question, j'ai demandé.OriginalL'auteur Brendan Green
Vous pouvez mettre la valeur dans HttpContext.Actuel.Éléments.
C'est le dictionnaire qui durée de vie est unique demande.
Vous pouvez l'utiliser comme ceci:
Il va exécuter ResolveScreenName() une seule fois pour une seule demande.
Vous pouvez également faire une extension de la méthode pour accéder à l'écran nom de l'Identité
Et ensuite l'utiliser comme ceci:
OriginalL'auteur Piotr Dory
J'en ai trouvé une mise en œuvre:
Ensuite, pour se plus tard...
OriginalL'auteur user2330270
Absolument! Vous devez créer votre propre type qui implémente de
IPrincipal
, et de prendre en charge la sécurité de vous-même. Vous pouvez vous authentifier l'utilisateur dans un OWIN étape, la configuration manuellecontext.Request.User
.OriginalL'auteur David Pfeffer