Можно ли получить профиль пользователя по его идентификатору? - PullRequest
5 голосов
/ 19 февраля 2012

Использование поставщиков членства и профиля Asp.net:

Могу ли я получить профиль пользователя, используя его идентификатор участника вместо имени пользователя?

Причина, по которой я спрашиваю, заключается в том, что если яиметь идентификатор пользователя, а не имя пользователя. Мне нужно было бы написать следующие две строки кода

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

вместо:

Dim Profile As Profile = Profile.GetProfile ("UserID")

Повлияет ли это на производительность?Мой дизайн плох?Я что-то пропустил?

Обратите внимание: я знаю, что могу получить текущего зарегистрированного пользователя, используя следующий код: HttpContext.Current.User.Identity.Name

1 Ответ

3 голосов
/ 22 февраля 2012
Guid userId = Membership.GetUser().ProviderUserKey as Guid; 

даст вам идентификатор пользователя, который вы ищете. Для простоты в приложениях asp.net я обычно вхожу в сессию, когда пользователь входит в систему.

Таблицы членства asp.net имеют уникальное имя пользователя для каждого приложения, и, поскольку можно определить несколько приложений в одной базе данных, также будет возможно для вызова Profile.GetProfile (строка userName) для возврата профиля из другого приложения. Вот почему нет GetProfile (userName), и это плохая идея реализовать его самостоятельно.

...