ASP - Компонент Permission Checker
Компонент Permission Checker создает объект PermissionChecker, который использует протоколы парольной проверки подлиности, имеющиеся в Microsoft® Internet Information Services (IIS), для того, чтобы выяснить наличие у пользователя разрешения на чтение файла.
Компонент Permission Checker можно использовать для настройки ASP-страницы для различных типов пользователей. Например, если веб-страница содержит гиперссылки, то с помощью компонента Permission Checker можно проверить, имеет ли пользователь разрешение на доступ к веб-страницам, на которые они указывают. Если у пользователя нет соответствующих разрешений, то можно убрать или изменить гиперссылки, указывающие на такие страницы.
Синтаксис
Set ИмяОбъекта = Server.CreateObject( "MSWC.PermissionChecker" )
Параметры
ИмяОбъекта
Указывает имя объекта PermissionChecker, созданного вызовом метода Server.CreateObject.
Методы
HasAccess | Выясняет, имеет ли пользователь разрешения на доступ к указанному файлу. |
Примеры
В следующем примере метод HasAccess используется для выяснения того, имеет ли текущий пользователь доступ к указанному файлу. Заметьте, что можно указывать как физический, так и виртуальный путь.
<% Set pmck = Server.CreateObject("MSWC.PermissionChecker") %>
Доступ по физическому пути = <%= pmck.HasAccess("c:\pages\abc\default.htm") %>
Доступ по виртуальному пути = <%= pmck.HasAccess("/abc/default.htm") %>
Примечания
IIS поддерживает следующие три типа парольной проверки подлинности в любых комбинациях:
- Анонимная
- Обычная
- Встроенная проверка подлинности Windows
Когда включена анонимная проверка подлинности, все пользователи изначально входят по анонимной учетной записи пользователя IIS. Так как все анонимные пользователи используют одну и ту же учетную запись, компонент Permissions Checker не может проверить подлинность отдельных пользователей при разрешенном анонимном доступе.
Для приложений, в которых все пользователи имеют индивидуальные учетные записи, например для веб-узлов интрасетей, рекомендуется отключать анонимную проверку подлинности, чтобы компонент Permissions Checker мог проверять отдельных пользователей.
Для приложений, в которых одни страницы должны быть доступны анонимным пользователям, а другие — нет, например для узлов, предназначенных одновременно и для Интернета, и для интрасети, следует разрешить анонимную проверку подлинности и хотя бы еще один метод парольной проверки подлинности: встроенную проверку подлинности Windows или обычную проверку подлинности. При этом, если анонимный доступ к конкретной странице будет запрещен, сервер будет пытаться проверить подлинность пользователя с помощью либо встроенной проверки подлинности Windows, либо обычно парольной проверки подлинности.
Запретить анонимный доступ к конкретной странице можно двумя способами.
- Настроить таблицу управления доступом (ACL) для ASP-файла, исключив анонимную учетную запись.
- В сценарии ASP выполнить проверку на анонимную учетную запись пользователя (серверная переменная LOGON_USER в этом случае будет пуста) и установить свойство Response.Status в значение «
401 Unauthorized»
. Это заставит IIS выполнить попытку идентифицировать пользователя с помощью обычной или встроенной проверки подлинности.
Это показано в приведенном ниже примере.
<%
If Request("LOGON_USER") = "" Then
Response.Status = "401 Unauthorized"
End if
%>
Если все файлы приложения должны быть доступны анонимным пользователям, компонент Permission Checker не сможет различать пользователей. Тем не менее, им можно продолжать пользоваться для проверки существования отдельных веб-страниц и наличия у анонимной учетной записи пользователя разрешений на доступ к ним.
Примечание. Парольная проверка подлинности NTLM в настоящее время поддерживается только лишь обозревателем Microsoft Internet Explorer и может не работать с прокси-серверами. Поэтому, если пользователи обращаются к узлу с помощью других обозревателей или через прокси-сервер и вашему приложению требуется контекст неанонимного пользователя, необходимо задействовать обычную парольную проверку подлинности.