Comment personnaliser ClaimsPrincipal MVC 5?
J'ai créé une entité personnalisée classe
public class FacebookPrincipal : ClaimsPrincipal
{
public JObject Data { get; set; }
}
Et je veux l'utiliser. Lorsque l'utilisateur se connecte, j'ai tenté de
var fbP = new FacebookPrincipal { Data = user.Data };
Thread.CurrentPrincipal = fbP;
AuthenticationManager.User = fbP;
HttpContext.User = fbP;
Il travaille juste après que je l'ai installé, mais quand je vais ho home/index
la valeur est perdu
var user = HttpContext.GetOwinContext().Authentication.User;
var bbbb = this.User;
var cccc = ClaimsPrincipal.Current;
Toutes les méthodes ci-dessus, de retour d'un Principal de type ClaimsPrincipal
et coulée de FacebookPrincipal
renvoie la valeur null.
Comment faire pour définir une entité personnalisée?
Ce qui ne l'énumération de la
Voici une solution que j'ai posté sur une question similaire: http://stackoverflow.com/a/25731422/264672
Claims
le retour du bien?[0] = {http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier: #########}
- [1] = {http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name: ####}
- [2] = {http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider: ASP.NET Identity}
Voici une solution que j'ai posté sur une question similaire: http://stackoverflow.com/a/25731422/264672
OriginalL'auteur BrunoLM | 2013-11-04
Vous devez vous connecter pour publier un commentaire.
ASP.NET l'Identité utilise par défaut ClaimsIdentityFactory de créer avant d'assigner ClaimsIdentity de l'Utilisateur et du Fil. Vous devez créer votre propre ClaimsIdentityFactory où vous pouvez ajouter ou gérer des informations supplémentaires.
Et le code suivant pour créer votre mise en œuvre pour ClaimsIdentity ou de ses sous-classe.
base.CreateAsync
et fusionner lesClaims
à votreClaimsIdentity
.OriginalL'auteur jd4u
•Assurez-vous que vous avez absolument besoin de la sous-classe ClaimsIdentity. Vous pouvez ajouter des informations supplémentaires comme des Demandes.
Vous devez être prudent sur l'ajout d'autres demandes d'information complémentaire, comme un effet secondaire peut être un changement dans la façon dont la politique d'autorisation de rendre des décisions.
OriginalL'auteur Brent Schmaltz
Aujourd'hui la lecture de la question encore une fois je me rends compte de la question de l'identité de la persistance et de ne pas apprendre à créer des ClaimsIdentity!!!
En outre, afin de préserver l'identité entre deux requêtes, utilisez le code suivant.
OriginalL'auteur jd4u