Получение профиля пользователя по имени пользователя
01.08.2009
Для того чтобы получить данные профиля пользователя по имени можно использовать метод ProfileBase.Initialize(userName, IsAuthenticated) или прочитать данные напрямую из провайдера.
Обычно данные профиля загружаются автоматически, и затем обратившись к HttpContext.Current.Profile можно получить данные профиля для текущего пользователя. Но для административных задач, например сохранение или проверка наличия данных в профилях всех пользователей возникает необходимость загрузить данные профиля по имени пользователя. К сожалению по классам работы с профилями не совсем очевидно как это сделать. Есть два способа, первый проинициализировать класс ProfileBase , а второй – прочитать данные профиля напрямую из провайдера.
Первый способ:
ProfileBase p = new ProfileBase(); p.Initialize(userName, true); string userPhone = p["Phone"] as string;
Второй способ: чтение данных напрямую из провайдера при помощи метода GetPropertyValues для текущего провайдера. Этот способ хорош тем что позовляет прочитать названия свойств и их значения, даже если профайлы не работают (как на пример в MOSS). Подробнее об этом способе читайте в статье Get/Set custom profile properties in Profile Provider for MOSS
Список свойств: Для того чтобы получить список свойств, заданных в web.config в секции profiles/properties можно воспользоваться статическим свойством ProfileBase.Properties. Это может потребоваться при реализации чтения профиля вторым способом через метод GetPropertyValues
Entry Filed under: Программирование. Метки: asp.net, profiles.
Subscribe to the comments via RSS Feed