2009-07-28 7 views
0

Ich weiß, dass ich das Attribut [Authorize (Roles = "client")] verwenden kann, um sicherzustellen, dass nur authentifizierte Clients auf eine Seite zugreifen können. Wie kann ich danach auf die persönlichen Daten dieses Benutzers zugreifen? Wie bekomme ich programmatisch die Konto-ID dieses Benutzers von diesem Action-Controller?Wie kann auf gespeicherte DB-Daten eines Benutzers auf einer ASP.NET MVC-Seite zugegriffen werden?

Zum Beispiel, wie greift meine persönliche Kontoseite auf Stack Overflow auf meine persönlichen Daten zu, die in einer Datenbank gespeichert sind?

Bis jetzt half Googeln "Authentifizierung", "Autorisierung" nur mir den Zugriff auf eine Controller-Aktion zu beschränken, nicht, wie man auf das Zeug dieses Benutzers zugreifen.

Antwort

1

Angenommen, Sie den Mitgliedschaftsanbieter verwenden (was ich so annehmen würde, wenn Sie das Attribut verwenden), der einfachste Weg ist:

var membership_user = Membership.GetUser(); 

, die eine MembershipUser für den aktuell eingeloggten zurück im Benutzer. Auf diese Weise können Sie auf alle Profilinformationen zugreifen, die Sie eingerichtet haben, und erhalten außerdem den Primärschlüssel für den Zugriff auf andere von Ihnen eingerichtete Informationen.

James

+0

Meinen Sie mit "System.Web.Security verwendet;"? Ich habe das nicht verwendet, obwohl ich diese Zeile hinzugefügt habe, um den Code kompilieren zu lassen. Ich habe gerade ein Tutorial zur Autorisierung gelesen, das besagt, dass ein Attribut verwendet wird, um den Zugriff zu blockieren, und wenig mehr. Ihr Code scheint genau das zu sein, was ich brauchte, es sei denn, es gibt eine bevorzugte Vorgehensweise in MVC! –

+0

Ja. Es ist Teil von System.Web.Security. Nein, nicht dass ich davon weiß. Trotz vieler "spezieller" Dinge wie den Autorisierungsattributen, gibt es immer noch viele Funktionen zwischen asp.net und asp.net MVC - keine Notwendigkeit, das Rad neu zu erfinden. –

Verwandte Themen