Как программно проверить авторизацию папки местоположения asp.net - PullRequest
1 голос
/ 12 июня 2010

У меня есть элемент location в моем web.config, например, так:

<location path="Admin">
    <system.web>
        <authorization>
            <allow roles="Domain\Development"/>
            <deny users="*" />
        </authorization>
    </system.web>
</location>

Это работает, чтобы разрешить только членам группы разработки доступ к этой папке.

Мне было интересно,есть способ просто проверить, есть ли у пользователя доступ к этой папке?

Один из сценариев - создание пунктов меню.Я просто хотел бы скрыть или не отображать ссылки на страницы в этой папке, если у пользователя нет необходимых прав.

Есть ли способ сделать это в коде.Я не хочу жестко кодировать проверку на членство в Domain \ Development, скорее, я бы хотел использовать asp.net, чтобы сообщить мне, есть ли у этого текущего пользователя доступ.

Было бы неплохо, если бы правила усложнились и т. Д. Кроме того, наличие этого в одном месте усиливает СУХОЙ (не повторяй себя).

1 Ответ

2 голосов
/ 06 июня 2011

Через связанный вопрос Я нашел ответ.Звоните UrlAuthorizationModule.CheckUrlAccessForPrincipal.(Документация здесь .) Вы можете указать ему путь и пользователя (например, Page.User для текущего пользователя), и он сообщит вам, может ли пользователь получить доступ к этому пути.

Мне нравится именно по той причине, которую вы упомянули: вы можете поместить свою логику доступа в одном месте.

...