J'ai fait une connexion simple à l'aide de l'identité. Je me suis connecté avec Si la connexion a été réussie, je voudrais obtenir les données de l'utilisateur actuellement connectées à l'aide du Le problème est que je ne peux obtenir qu'un identifiant à partir du SigninManager.Passwordsigninasync () code>.
usermanager code>. P>
getuserasync code> et je ne sais pas quoi faire avec elle. p>
3 Réponses :
Pour moi, il semble que vous enregistriez l'utilisateur et essayez immédiatement d'accéder aux informations utilisateur. Le HTTPContext n'a pas eu la chance de mettre à jour et reflète toujours le temps lorsqu'il n'y avait aucun utilisateur connecté. Essayez de déplacer votre logique de récupération d'informations utilisateur sur "CreativeEpost" où il est exécuté sur le prochain aller-retour HTTP.
Si cela ne fonctionne pas, assurez-vous que votre système d'authentification fonctionne. Vous pouvez, par exemple, décorer l'action CreativeEpost () avec l'attribut [Autoriser]. Si votre utilisateur actuel peut exécuter l'action CreativeEpost (), vous devriez pouvoir accéder exactement aux données de l'utilisateur comme indiqué.
Merci pour votre réponse, cela m'a aidé, menthermanager.getasername (httpcontext.user); Après cela, j'utilise le nom d'utilisateur enregistré pour accéder à partir de la base de données
Vous avez deux problèmes. Tout d'abord, Ce que vous pouvez faire est de tirer directement l'utilisateur en utilisant quelque chose comme Alors, qu'est-ce que vous Beard à faire est de regarder l'utilisateur par des informations que vous do em> avez, qui basé sur votre code, est getuserasync code> s'appuie sur le principal étant défini dans
httpcontext code>, qui n'a pas encore eu lieu, de sorte que cette méthode échouera. Il doit y avoir une demande intervenante avant de pouvoir accéder à l'utilisateur de cette façon.
FindByIdasync code>, que vous essayez de faire déjà. Cependant, vous essayez de trouver l'utilisateur basé sur l'ID de l'instance utilisateur que vous avez essayé de récupérer via
getuserasync code>. Depuis que cela a échoué, il n'y aura pas d'utilisateur et donc pas d'identifiant à utiliser dans cette recherche, ce qui l'oblige également. Il n'a même pas de sens de faire cela, comme si vous aviez déjà l'utilisateur d'obtenir l'identifiant, il n'y aurait pas de point à regarder cet utilisateur par son identifiant. P>
nom d'utilisateur code>. Par conséquent, faites: p>
La raison en est que l'utilisateur sera disponible pour la demande suivante, vous ne pouvez pas obtenir l'utilisateur dans cette demande actuelle, sans parler du nom de l'utilisateur. P>
Quels types sont
userData code> et
utilisateur code>?
userData est {id = 317, statut = rantocompletion, méthode = "{null}", résultat = ""}, l'utilisateur est null
Il vous a demandé quel est le type qui signifie quel type d'objet vous attendez à ces variables?
Ce que tous sont les détails de l'utilisateur que vous attendez, veuillez l'élaborer afin que d'autres puissent vous aider sur ce dont vous avez besoin exactement
ApplicationUtilisateur, ou quelques propriétés de celui-ci, comme le nom d'utilisateur, email
@Andrea Vous appelez des méthodes asynchronisées mais n'attendez jamais les résultats. Vous devez utiliser
var userData = mushermanager.getuserasync (httpcontext.user); code>
Le
attendre code> n'est qu'une partie du problème. L'autre partie est couverte par la duplication éventuelle.