2013-04-10 4 views
0

У меня есть несколько страниц ASP.NET с таким же поведением:Отображение содержимого веб-страницы на основе прав доступа пользователя

  1. Каждая страница имеет свое собственное содержание (например, формы и таблицы)
  2. Каждая страница ссылается на 2 веб-пользовательские файлы управления для отображения рамы меню
  3. На странице Page_Init проверяется, имеет ли пользователь доступ для просмотра содержимого. Если у них нет доступа, страница покажет сообщение и не покажет оставшееся содержимое. Рамка меню будет отображаться.

Я совершенно новый в ASP.NET, поэтому я могу думать только о том, чтобы играть с видимостью <div> тегов для контента на основе права доступа. Я хотел бы знать, есть ли другие способы работать над этим. Я использую VB для кода. Просьба предложить ...

ответ

1

Вы можете обернуть разделы в PlaceHolder и просто выключить его, например:

<asp:PlaceHolder ID="AuthUserStuff" runat="server"> 
    <div> 
     ... 
    </div> 
</asp:PlaceHolder> 

В вашем коде, вы можете просто сделать что-то вроде:

AuthUserStuff.Visible = User.IsAuthenticated; 

PlaceHolder имеет дополнительное преимущество в том, что содержимое не будет отображаться клиенту, если оно скрыто.

+0

Удивительный, спасибо. – user1817209

0

Использование тега div, которое вы контролируете видимость, плохо, это означает, что пользователь может просто сделать «источник просмотра», и весь контент будет там.

Вместо этого вы не должны добавлять контент к любому используемому вами управлению (или использовать элемент управления @Lloyd) или redirect him на пользовательскую страницу 403 (без доступа).