2010-12-09 8 views
1

Notre système utilise des rôles personnalisés et un système d'authentification pour authentifier les utilisateurs.Authentification PrinciplePermission personnalisée

Je m'intéresse maintenant à la validation/sécurité côté service. Je veux implémenter notre Authentification personnalisée, Autorisation sur le wcf aussi.

J'ai fait quelques recherches, il semble que je pourrais utiliser l'attribut PrinciplePermission sur les contrats pour autoriser/refuser l'accès. La valeur par défaut appelle simplement la méthode IsInRole sur IPrinciple et IsAuthenticated sur IIdentity.

J'ai donc 2 questions:

  1. Comment ne mettre en œuvre mon propre principe personnalisé qui dispose de données supplémentaires/méthodes?
  2. Comment ajouter des vérifications supplémentaires aux PrinciplePermissions? par exemple (IsExternal qui va vérifier si elles accèdent au service de l'intranet ou Internet [un mécanisme pour surveiller ce déjà])

Merci

Répondre

0

Après quelques expériences, je suis venu avec une solution écrite personnalisée:

J'ai basé ma solution dans le Authorisation Sample de Kyle McClellan. J'ai adapté les attributs pour regarder une classe personnalisée pour récupérer l'utilisateur. Pour contourner le problème asynchrone, j'ai chargé l'utilisateur et ses données pertinentes dans le App.xaml avant d'instancier la MainPage, puis j'utilise un singleton global, que j'ai appelé SecurityContext, pour accéder aux données de l'utilisateur.

Le SecurityContext est un magasin en mémoire des données utilisateur auxquelles il est possible d'accéder.

Questions connexes