как я могу ограничить доступ ко всем файлам в папке без web.config - PullRequest
3 голосов
/ 14 июня 2010

Мне нужно ограничить доступ к своей папке администратора для определенных людей.Те, у кого нет билета для аутентификации, должны быть перенаправлены на «запрещенную страницу».Как мне определить все страницы в моей папке администратора.У меня так далеко, но все ли в порядке?

If url.Contains("/admin") Then

'Если аутентификационный билет неверен, то

        `Response.Redirect("~/notallowed_admin.aspx")`

End If

А неЯ не могу использовать свой web.config для этой конкретной проблемы.

Большое спасибо

Ответы [ 2 ]

1 голос
/ 17 июня 2010

Вы должны поставить проверку безопасности на Global.asax

Кроме того, было бы целесообразно заменить ваше условие на более точное совпадение регулярным выражением, чтобы избежать случайных несоответствий.

    protected override void Application_BeginRequest(Object sender, EventArgs e) {
        if (Regex.IsMatch(Request.Url.ToString(),@".*/system\.aspx/admin.*\.aspx",RegexOptions.IgnoreCase)) {
            Response.Redirect("~/AdminSecurityCheck.aspx");
            return;
        }
        .......
    }
0 голосов
/ 14 июня 2010

If url.contains("/admin") должно быть достаточно в большинстве случаев.Большинство программистов считают, что это немного, если KLUDGE.

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

Я считаю, что да, то, что вы хотите сделать, возможно, хотя все, что вы делаете, будет немногоKLUDGE формируют точку зрения .net, потому что web.config - это то, что MS предоставляет, чтобы указать, как выполнять авторизацию.

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