2012-02-19 13 views
5

Korzystanie z Asp.net Membership & profilu Providers:Czy możliwe jest pobranie profilu użytkownika przy użyciu jego identyfikatora użytkownika członkostwa?

jestem w stanie odzyskać profil użytkownika za pomocą swojego identyfikatora użytkownika Membership zamiast ich nazwy?

Pytam dlatego, że jeśli mam identyfikator użytkownika, a nie nazwę użytkownika musiałbym napisać następujące dwa wiersze kodu

Dim MembershipUser As MembershipUser = Membership.GetUser("UserID") 
    Dim Profile As Profile = Profile.GetProfile(MembershipUser.UserName) 

Zamiast:

Dim profil jako profile = Profil .GetProfile ("UserID")

Czy wpłynie to na wydajność? Czy mój projekt jest zły? Czy czegoś brakuje?

Uwaga: Zdaję sobie sprawę, że mogę odzyskać bieżący zalogowany użytkownik za pomocą następującego kodu: HttpContext.Current.User.Identity.Name

Odpowiedz

3
Guid userId = Membership.GetUser().ProviderUserKey as Guid; 

daje userid, że jesteś po . Dla uproszczenia w aplikacjach ASP.NET zwykle wpisuję się w sesję, gdy użytkownik się loguje.

Tabele członkostwa asp.net mają unikalną nazwę użytkownika dla każdej aplikacji, a ponieważ możliwe jest zdefiniowanie wielu aplikacji w jednej bazie danych, możliwe będzie również wywołanie profilu Profile.GetProfile (string nazwa_użytkownika) w celu zwrócenia profilu z innej aplikacji . Dlatego nie ma GetProfile (userName) i jest to zły pomysł implementacji go samemu.

+0

Buduję aplikację internetową ASP.Net, a nie stronę internetową, dlatego użyłem WebProfileBuilder 1.3. (Ponieważ tak naprawdę nie widzę innego sposobu na zrobienie tego?) ... Mogę z powodzeniem używać: WebProfile.GetProfile (UserName), ale nie ma metody przekazywania identyfikatora. Czy muszę go dostosować? – Haris

+0

Jeśli utworzysz nową witrynę internetową w visual studio, a następnie dodasz pewne właściwości, tj. . Następnie możesz pobrać wartość tego kodu pocztowego dla dowolnego użytkownika, używając następującego kodu: Profile.GetProfile ("Nazwa użytkownika"). Dlaczego więc mówisz: "To dlatego nie ma GetProfile (userName) i nie jest to dobry pomysł, aby samemu go wdrożyć?". – Haris

+0

Z twojego pytania nie wynika jednoznacznie, czego dokładnie chcesz ... Po krótkim przyjrzeniu się mojej aplikacji asp.net z członkostwem w wanilii asp.net zadałem te serie pytań: "Czy wpłynie to na wydajność? mój projekt jest zły? Czy brakuje mi czegoś? – b0rg

Powiązane problemy