Операционная система Windows будет проверять, имеет ли учетная запись ASPNET права, необходимые для доступа к файлу .aspx. Она не будет выполнять ту же проверку для пользователя, аутентифицированного IIS. Модуль FileAuthorizationModule заполняет этот пробел. Он выполняет проверку авторизации, используя контекст безопасности текущего пользователя. В результате системный администратор может устанавливать права доступа к файлам или папкам и контролировать доступ к частям приложения ASP.NET. Обычно проще и удобнее использовать правила авторизации в файле web.config. Однако, если вы хотите, можете воспользоваться преимуществами существующих привилегий Windows в локальной или Intranet-сети, используя файловую авторизацию.
Средствами авторизации URL и файловой авторизации вы можете контролировать доступ к индивидуальным Web-страницам. Следующий шаг в обеспечении безопасности приложения состоит в том, чтобы встроить проверки в само приложение перед попыткой выполнения определенной задачи или разрешением какой-либо операции. Чтобы использовать эту технику, придется написать некоторый код.
Как вы видели в предыдущих главах, объекты IPrincipal представляют метод IsInRole(), который позволяет проверить принадлежность пользователя к группе. Этот метод принимает имя роли в виде строки и возвращает true, если пользователь является членом этой роли.
Например, вот как можно проверить, что текущий пользователь является членом роли Supervisors:
if (User.IsInRole("Supervisors"))
{
// Ничего не делать; страница доступна, как обычно, поскольку
// пользователь имеет привилегии администратора.
}
else
{
// He разрешать доступ к этой странице. Взамен переадресовать
// на домашнюю страницу.
Response.Redirect("default.aspx");
}
Напомним, что при использовании Windows-аутентификации вам нужно применять формат [имя_домена]\[имя_группы] или [имя_компьютера]\[имя_группы]. Ниже показан пример:
if (User.IsInRole(@"FARIAMAT\Supervisors"))
{...}
Этот подход работает со специальными группами, которые созданы вами, но не подходит для встроенных групп, определенных операционной системой. Если вы хотите проверить, является ли пользователь членом одной из встроенных групп, то должны использовать в качестве домена имя BUILTIN:
предыдущая следующая страница вначало главы оглавление
933