Ошибка User.IsInRole

У меня есть этот код внутри Page_Load файла Site.Master.cs.

if(User.IsInRole("Read"))
{
   NavigationMenu.Visible = false;
}

и я получаю эту ошибку:

Ссылка на объект требуется для нестатического поля, метода или свойства Microsoft.VisualBasic.ApplicationServices.User.IsInRole(string).

Любые подсказки?


person pikk    schedule 20.08.2011    source источник


Ответы (3)


Похоже, вы используете класс вместо экземпляра этого класса, попробуйте:

User user = new User();
user.IsInRole("Read");
person Shiraz Bhaiji    schedule 20.08.2011

Вы можете получить текущий HttpContext user и проверьте наличие данной роли, используя метод IsInRole, как показано ниже.

HttpContext.Current.User.IsInRole("Read")

Измените свой метод как

if(HttpContext.User.IsInRole("Read"))
{
   NavigationMenu.Visible = false;
}
person Damith    schedule 20.08.2011

Я не совсем согласен с ответом. Вы получаете экземпляр User из свойства Page на главной странице, поэтому вам следует использовать:

var user = Page.User;
user.IsInRole("your role");
person Tomas Jansson    schedule 22.08.2011