2009-09-28 7 views
0

Lorsque je vérifie un rôle d'utilisateur dans ma balise d'autorisation personnalisée, je vais avoir besoin d'une 3e valeur. Comme le construit dans les choses permet celaAjouter des éléments supplémentaires à un cookie et les attraper? Asp.net MVC C#

"filterContext.HttpContext.User.Identity.Name;"

Mais cela ne fonctionnera pas pour moi puisque j'aurai beaucoup d'utilisateurs avec le même nom. Donc je ne pense pas que cela m'aidera quand j'en aurai 10 avec le même nom et que je devrai tirer le GUID d'eux. Lorsque je fais mes identifiants de connexion, j'utilise un autre champ pour différencier les utilisateurs.

Je me demande ce que je peux montrer que 3ème champ dans le cookie (ou cependant il le fait avec User.Identity.Name) et chiffrez avec le cookie de sorte qu'il est sûr et faire quelque chose comme

" filterContext.HttpContext.User.Identity.UnquieField; "

+0

De quoi avez-vous besoin exactement dans le cookie? Quelles sont les 1ère et 2ème valeurs? – Tinister

+0

Désolé, il devrait être 2ème (en pensant à quand vous vous connectez et le 3ème serait mot de passe) valeur. La 1ère valeur est Nom d'utilisateur et la 2ème valeur est juste un peu de preifx que je donne aux utilisateurs du même groupe. Cela me permet d'avoir plusieurs groupes donc en regardant prefiex et userName, je peux avoir un nom d'utilisateur en double mais je sais toujours qui ils sont. Tant que le préfixe est différent, le même nom d'utilisateur peut être utilisé. Si le préfixe est utilisé et que le nom d'utilisateur est utilisé, ce nom est rejeté. – chobo2

Répondre

0

Généralement, lorsque j'ai besoin de stocker plusieurs valeurs dans un cookie, je crée une classe légère et utilise Json.NET pour sérialiser/désérialiser la classe dans la valeur du cookie. Par conséquent, votre cookie ressemblerait à quelque chose comme ceci:

user = {UserName: bob123, Prefix: groupe1}

Vous pouvez formater comme bon vous semble, cependant. Si Json est trop lourd, vous pouvez faire quelque chose d'aussi simple que "user = bob123, group1".

L'important est que votre contrôleur ait besoin de logique pour analyser/décoder le nom d'utilisateur et le préfixe de/à la valeur du cookie.

+0

Comment l'ajouter au cookie? Est-ce ce que fait User.Identity.Name? Cette analyse se produirait pour moi dans mon customAttribute. – chobo2

+0

J'utilise FormsAuthentication.SetAuthCookie à propos. Donc je ne suis pas sûr de devoir en faire un autre moyen? – chobo2

Questions connexes