2009-07-28 7 views
0

Je sais que je peux utiliser l'attribut [Authorize (Roles = "client")] pour m'assurer que seuls les clients authentifiés peuvent accéder à une page. Mais après cela, comment puis-je accéder aux données personnelles de cet utilisateur? Comment est-ce que j'obtiens par programme l'ID de compte de cet utilisateur de ce contrôleur d'action? Par exemple, sur Stack Overflow, comment ma page de compte personnel accède-t-elle à mes données personnelles stockées dans une base de données? Jusqu'ici, googler "authentification", "autorisation" seulement m'a aidé à limiter l'accès à une action du contrôleur, pas comment accéder aux trucs de cet utilisateur.Comment accéder aux données de base de données enregistrées d'un utilisateur sur une page ASP.NET MVC?

Répondre

1

En supposant que vous utilisez le fournisseur d'appartenances (qui je suppose que oui si vous utilisez l'attribut), le plus simple est:

var membership_user = Membership.GetUser(); 

qui retournera un MembershipUser pour le moment logged- dans l'utilisateur. À partir de là, vous pouvez accéder à toutes les informations de profil que vous avez configurées et obtenir la clé primaire pour accéder à tout ce que vous avez configuré.

James

+0

Voulez-vous dire par "using System.Web.Security;"? Je n'utilisais pas cela bien que j'aie ajouté cette ligne pour faire compiler votre code. Je viens de lire un tutoriel sur l'autorisation qui dit d'utiliser un attribut pour bloquer l'accès et un peu plus. Votre code semble être ce dont j'avais besoin à moins qu'il y ait une façon préférée de le faire dans MVC! –

+0

Oui. Cela fait partie de System.Web.Security. Non, pas que je sache. Malgré beaucoup de choses "spéciales" comme les attributs d'autorisation, beaucoup de fonctionnalités sont encore partagées entre asp.net et asp.net MVC - pas besoin de réinventer la roue. –

Questions connexes