Включить определенную страницу в соответствии с пользователем - PullRequest
0 голосов
/ 01 апреля 2011

Использование ASP.Net и C #

Меню веб-страниц: Admin, HR, IT

Я использую страницу входа на моем веб-сайте.

Состояние

If the website is login by Admin User, Admin Menu only enable
If the website is login by HR User, HR menu only enable
....

Как создать код для вышеуказанного условия.

Нужна помощь по коду

Ответы [ 2 ]

1 голос
/ 01 апреля 2011

Я предполагаю, что вы используете встроенный ролевой менеджер и членство.

Если вы используете элемент управления меню, я полагаю, что меню будет учитывать права доступа к местоположению, если целевые ссылки настроены надлежащим образом. Поэтому, если вы добавите в свой web.config что-то вроде этого (не проверили точную разметку, но надеюсь, что вы поняли):

<location path="admin/admin.aspx">
  <system.web>
    <authorization>
      <allow roles="Admin" />
    </authorization>
  </system.web>
</location>
<location path="hr/hr.aspx">
  <system.web>
    <authorization>
      <allow roles="HR" />
    </authorization>
  </system.web>
</location>

Если вы создаете пользовательское меню, просто

<% if (HttpContext.Current.User.IsInRole("Admin"){ %> <li>Admin Menu</li> <% } %> 

вокруг ваших пунктов меню должны сделать трюк

0 голосов
/ 01 апреля 2011

Любой элемент управления с runat = "server" имеет атрибут Visible, который можно привязать к использованию,

Visible='<%# IsAdmin %>'

В коде IsAdmin - это свойство, которое вы создаете и которое возвращает bool.Невидимый предмет не будет обработан.Установите свойство visible для каждого из ваших меню на IsAdmin, IsHR и IsIT, и только те меню будут отображаться, когда их свойство возвращает true.

Кстати, это привычка использовать одинарные кавычки вокруг привязки, потому что иногдавы хотите использовать двойную кавычку в заявке на связывание.В этом случае двойные кавычки тоже подойдут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...