Как проанализировать данные PropertyName PropertyValue? - PullRequest
1 голос
/ 02 августа 2009

Два веб-приложения, с которыми я работаю, используют членство в ASP.NET, и у каждого есть области для пользовательской информации, которые используют этот метод хранения имени / значения свойства в базе данных.

Вот пример:

PropertyNameValues ​​

publicEmail:S:0:19:yahooIM:S:19:0:timezone:S:19:2:commonName:S:21:4:birthdate:S:25:81:signatureFormatted:S:106:0:gender:S:106:1:fontsize:S:107:1:signature:S:108:0:dateFormat:S:108:15:enableEmoticons:S:123:4:webLog:S:127:0:enablePostPreviewPopup:S:127:5:location:S:132:12:bio:S:144:0:webAddress:S:144:0:interests:S:144:0:icqIM:S:144:0:aolIM:S:144:0:language:S:144:5:occupation:S:149:0:msnIM:S:149:0:

PropertyValues ​​

someemailhere@here.com-6Asia<?xml version="1.0" encoding="utf-16"?>
<dateTime>0001-01-01T00:00:00</dateTime>20ddd, MMM d yyyyTrueFalseTest Testing-US

Я могу видеть суть того, как это работает, значения имен показывают, какой длины в строке значения свойства начинать захватывать, а когда заканчивать - но существует ли существующая функция для разделения их на массив или что-то еще? *

Спасибо!

Ответы [ 2 ]

2 голосов
/ 07 октября 2009

Как это работает, зависит от того, используете ли вы тип проекта «веб-сайт» или «веб-приложение». Если вы используете обычный проект веб-сайта asp.net, у вас будет динамически сгенерированный объект Profile, из которого вы можете извлекать пользовательские свойства.

Если ваше приложение MVC или проект веб-приложения, вам придется создать собственный объект профиля. Я рекомендую вам взять конструктор веб-профилей . Этот инструмент создает объект ProfileCommon, необходимый для получения данных профиля.

В целом, я лично обнаружил, что благодаря системе многократного разоблачения система провайдеров профилей, предоставляемая на asp.net, весьма ужасна для хранения фактической пользовательской информации (того типа, для которого вы ее используете). Механизм поставщика профилей отлично подходит для таких вещей, как пользовательские настройки (обычно называемые персонализацией), таких как «всегда показывать детали» или «я предпочитаю зеленый фон». Причина в том, что система профилей делает данные профиля легкодоступными только по запросу одного пользователя. Если у вас есть инструменты администратора, которые должны читать из профилей нескольких пользователей, вы обнаружите, что производительность будет быстро снижаться, и получить данные профиля на самом деле довольно сложно.

По этим причинам я рекомендую вам не использовать систему профилей для данных, которые вы там храните. Вам будет гораздо лучше катать свои собственные таблицы и объекты, чтобы хранить и извлекать эту конкретную информацию. Но если вам никогда не понадобится доступ к данным для более чем одного пользователя одновременно, встроенный профиль хорошо.

1 голос
/ 06 октября 2009

Похоже, вы имеете в виду систему профилей ASP.NET .

В коде позади страницы aspx просто используйте Profile.publicEmail, Profile.yahooIM и т. Д. Есть автоматически сгенерированный класс, который анализирует это для вас. См. Связанную статью для получения дополнительной информации.

...