Je suis en train de développer une application web avec un jeton support Asp.Net 5 MVC, Owin et Oauth2 comme type d'authentification.Stockage d'une liste de chaînes dans Claim (System.Security.Claims)
Je dois stocker une liste de la chaîne "CODEFOO,CODBAR,CODEX,.."
à l'intérieur d'un System.Security.Claims.Claim avec un type de revendication personnalisé. Lorsque l'utilisateur demande un jeton, cette liste de "codes d'utilisateur" provient du serveur principal et est définie à l'intérieur de l'identité en utilisant un type de revendication personnalisé spécifique.
Lorsque l'utilisateur renvoie le jeton, naviguant dans une action MVC spécifique, l'application doit vérifier si la liste des codes utilisateur à l'intérieur de la revendication contient un code spécifique.
List<string> userCodes = rep.GetUserCodeFromBackEnd();
string userCodesClaimType = "http://foo.it/claim/usercodesclaimtype";
Je suis en train de sérialiser la liste de chaînes dans JSON.
var claim = new Claim(userCodesCaimType, JsonConvert.SerializeObject(userCodes));
et le récupérerez dé-sérialisation avec quelque chose comme ceci:
var userCodesClaim = identity.Claims.FirstOrDefault<Claim>(c=>c.Type == userCodesClaimType) ;
var userCodesClaimValue = JsonConvert.DeserializeObject<List<string>>(userCodesClaim.Value);
Maintenant la question: est-il une meilleure façon de stocker une liste de valeurs dans une réclamation?
revendication a une propriété ValueType qui dit la documentation:
La propriété ValueType contient une chaîne qui identifie le type informations de la valeur. Cette propriété peut être utilisée pour comprendre le format de la valeur et pour fournir des informations sur la façon de sérialiser et de désérialiser la valeur. Si votre solution requiert des types complexes de type , il est recommandé d'utiliser des types de schéma XML standard dans la propriété ValueType pour indiquer comment la propriété Value est censée être sérialisée et désérialisée à partir d'une chaîne.
Malheureusement, je n'ai trouvé aucun exemple documentant l'utilisation de cette propriété.
La sérialisation JSON est-elle correcte ou dois-je utiliser l'approche ValueType?
Pourquoi n'ajoutez-vous pas plusieurs revendications? –