2009-06-08 10 views
0

У меня есть базовая страница (унаследованная от System.Web.UI.Page и всех моих страниц наследуется от этой базовой страницы) в моем веб-приложении .Net, и на данный момент, если я поставлю следующие методы:Profile.GetProfile() в базовом классе

protected int GetProfileTenant() 
    { 
     try 
     { 
      ProfileCommon p = Profile.GetProfile(Profile.UserName); 
      return Convert.ToInt32(p.TenantID); 
     } 
     catch 
     { 
      return -1; 
     } 
    } 

Ошибка возникает, говоря, что «Профиль имени не существует в текущем контексте».

Эти методы, если я помещаю это на страницу (унаследованную от базовых страниц), работают хорошо (без проблем).

Любые идеи?

Благодарность

Благодаря

+0

В следующий раз, пожалуйста, добавьте тег, который описывает технологию, которую вы используете, так как «членство-провайдер» довольно uninformational. На этот раз я добавил asp.net для вас. – OregonGhost

ответ

0

У меня нет четкого ответа для вас, но есть некоторая «магия» происходит в работе способа профилей (класс по вашему свойству профиля получает генерируется) , Очевидно, свойство Profile вводится в класс страницы верхнего уровня. Вы пробовали использовать вместо этого HttpContext.Current.Profile?

1

Добавить пространство имен System.web в классе. и попробовать этот

HttpContext.Current.Profile.UserName 
+0

И более 1 года спустя этот комментарий мне очень помогает. Я пытался сделать что-то подобное на базовой странице (получаю другое свойство профиля), и это запустило меня по правильному пути. ProfileCommon не работает, потому что это динамически созданный класс профиля, который НЕ будет иметь информацию профиля для текущего пользователя (включая свойства профиля, такие как UserName). – AndyG