Comment ajouter des revendications au cours de l'enregistrement de l'utilisateur
Je suis en utilisant ASP.NET MVC 5 projet avec l'identité 2.1.0 et VS2013 U4. Je tiens à ajouter les réclamations de l'utilisateur, lors de l'inscription afin d'être stockées dans la bd. Ces demandes représentent utilisateur propriétés personnalisées.
Comme je l'ai créé une page web pour l'administrateur de créer/modifier/supprimer des utilisateurs, je suis toujours à l'aide de la méthode create de AccountController
pour créer un utilisateur, mais je ne veux pas de connexion de cet utilisateur. Comment puis-je ajouter ces demandes à l'utilisateur ?
OriginalL'auteur MilanMilanovich | 2015-01-27
Vous devez vous connecter pour publier un commentaire.
Vous avez probablement déjà un
UserManager
classe. Vous pouvez l'utiliser pour créer des utilisateurs et ajouter des revendications.Comme un exemple dans un contrôleur:
Pour que cela fonctionne, vous devez mettre en place votre propre
UserManager
et de faire le lien avec la OWIN contexte (dans l'exemple c'estApplicationUserManager
qui, fondamentalement, estclass ApplicationUserManager : UserManager<ApplicationUser> { }
avec seulement une petite quantité de configuration). Un peu de lecture est disponible ici: https://msdn.microsoft.com/en-us/library/dn613290%28v=vs.108%29.aspxVous devriez être en mesure d'obtenir ces informations à l'aide de propriétés de navigation sur le ApplicationUser entité (utilisateur.Les réclamations). Il y a un peu intéressant à lire à ce sujet ici: stackoverflow.com/questions/22105583/...
O. K. j'ai réussi à obtenir le prétendent, mais comment puis-je le changer ?
Il n'y a pas de méthode à "modifier" les créances existantes dans
UserManager
. Cet itinéraire vous auriez à RemoveClaim() et puis AddClaim(). Sinon, vous pourriez vous y rendre par la DBContext... de toute façon vous devrez vous connecter et de connexion de l'utilisateur à nouveau afin d'obtenir le cookie de mise à jour (les réclamations sont sérialisées dans il n'y à pas de frapper la DB sur chaque appel de ces "fondamentaux" de l'information)Donc, quand un attribut est modifié, j'ai besoin de supprimer toutes les réclamations et puis de nouveau à ajouter des revendications et de la déconnexion de l'utilisateur ?
OriginalL'auteur
vous pouvez utiliser Comme
après la connexion passe de l'Utilisateur tableau de la valeur dans cette fonction
vous pouvez obtenir clam valeur comme
Thread.CurrentPrincipal
n'est pas une bonne idée car les fils peuvent basculer, surtout dans un async scénario.O. K. Merci. Mais comment puis-je obtenir de l'utilisateur dans /mon Compte/Login méthode ?
comment puis-je ajouter ceux de db ?
Votre exemple ne persistent que les revendications DB. Si les revendications ne durera que jusqu'à ce que la session est fermée, donc pas vraiment quelle était la question à propos de
hey, vous pouvez l'obtenir à l'aide de l'Utilisateur.L'identité.GetUserName();
OriginalL'auteur
Vous pouvez, en fait, de créer des réclamations dans le même temps, vous créez le compte d'utilisateur.
Il suffit d'ajouter les réclamations de l'utilisateur de l'objet avant d'appeler CreateAsync sur le gestionnaire des utilisateurs.
Cela va créer de l'utilisateur et d'associer les droits à l'utilisateur comme une opération logique avec persistance.
OriginalL'auteur