ASP.NET: показать или скрыть ссылку на странице в соответствии с конфигурацией расположения в файле web.config - PullRequest
0 голосов
/ 21 июня 2011

У меня есть веб-сайт ASP.NET с некоторыми местами в файле web.config, например,

<location path="SomeWhere">
  <system.web>
    <authorization>
      <allow roles="some-role"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</location>

Затем на главной странице сайта у меня есть набор ссылок, и яхотел бы показать или скрыть некоторые ссылки в соответствии с ролями пользователя.В настоящее время я делаю это:

<% if (HttpContext.Current.User.IsInRole("some-role")) { %>
  <asp:HyperLink ID="SomeLink" runat="server" 
    NavigateUrl="~/SomeWhere/">Somewhere</asp:HyperLink>
<% } %>                 

Я бы хотел избежать дублирования информации о роли в файле web.config и в коде страницы и заменить вышеуказанную проверку чем-то вроде

<% if (UserCanAccessLocation("Somewhere")) { %>
  <asp:HyperLink ID="SomeLink" runat="server" 
    NavigateUrl="~/SomeWhere/">Somewhere</asp:HyperLink>
<% } %>                 

Возможно ли это?

1 Ответ

1 голос
/ 21 июня 2011

Единственный способ, который я помню, - получить SiteMapNode для этого URL и использовать метод IsAccessibleToUser для проверки.

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