Да и нет
Поставщик использует «кэширование» один раз для каждого запроса, который обращается к данным профиля. Если вы не обращаетесь к данным профиля во время любого данного запроса, они не запрашиваются. Однако, если вы обращаетесь к данным профиля несколько раз в течение одного запроса (и не обновляете их), то их запрашивают только один раз.
Важным выводом является следующее: если вы обращаетесь к данным профиля по каждому запросу, то asp.net запрашивает базу данных один раз для запроса данных вашего профиля !.
Чтобы конкретно ответить на ваш вопрос: «Если я получу данные из профиля для пользователя, будет ли он попадать в БД для каждого [http] запроса?» Да, он будет попадать в базу данных каждый раз.
Возможно, вы могли бы создать своего собственного провайдера, который будет выполнять какую-либо форму кэширования на основе сеансов, поэтому вы не всегда вызываете базу данных для поиска данных профиля вашего пользователя. Вот отличная статья на эту тему: Оптимизация производительности профилей ASP.NET