Параметры проверки подлинности для мобильных устройств
Обновлен: Ноябрь 2007
В этом разделе обсуждаются параметры проверки подлинности для страниц и элементов управления ASP.NET для мобильных устройств. В нем рассматриваются некоторые сложности проверки подлинности на мобильных устройствах и обсуждаются следующие методы проверки подлинности:
Проверка подлинности Windows
Проверка подлинности по паспорту
Проверка подлинности с помощью форм
Проверка подлинности на устройствах, не поддерживающих файлы Cookie
Проверка подлинности Windows
Службы IIS совместно с ASP.NET могут проводить проверку подлинности клиента на базе Microsoft Windows. В незащищенном приложении (в котором установлен анонимный доступ) удостоверение пользователя, совершающего запрос, не рассматривается. Вместо этого запрос выполняется с использованием учетной записи по умолчанию, настроенной во время установки IIS.
При использовании диспетчера служб Интернета доступны следующие методы проверки подлинности Windows: обычная проверка, дайджест-проверка и встроенная проверка подлинности Windows. Можно настроить их, используя оснастку диспетчера служб Интернета в консоли управления MMC. IIS работает с учетными данными, основываясь на поддерживаемых обозревателем и допустимых для приложения методах проверки подлинности.
Обычная проверка подлинности
Многие мобильные устройства, имеющиеся на рынке на сегодняшний день, поддерживают только обычную проверку подлинности. Обычная проверка подлинности является наиболее широко используемым механизмом обмена учетными данными, однако сама по себе она не является безопасной, поскольку не использует шифрования.
Внимание! |
---|
По умолчанию при обычной проверке подлинности имя пользователя и пароль передаются открытым текстом. Поэтому для нее и для передачи другой важной информации рекомендуется использовать протокол HTTPS. |
Проверка подлинности по паспорту
ASP.NET не поддерживает проверку подлинности по паспорту для мобильных устройств.
Проверка подлинности с помощью форм
Проверка подлинности с помощью форм является частью архитектуры платформы .NET Framework, позволяющей проверять пользователей без проверки подлинности IIS. Общая последовательность событий такова:
Клиент запрашивает страницу.
Если пользователь еще не прошел проверку подлинности, веб-обозреватель перенаправляется к форме входа в систему.
Клиент передает учетные данные в форму, передаваемую обратно на сервер.
Приложение проверяет учетные данные. Если пользователь прошел проверку, приложение выписывает клиенту билет проверки подлинности (файл Cookie) с помощью форм и перенаправляет его на запрошенную им ранее страницу.
При последующих запросах проверяется файл Cookie проверки подлинности, и, если он признается действительным, запрошенная страница выдается напрямую.
На четвертом шаге с устройствами, не поддерживающими файлы Cookie, возникают проблемы. Метод RedirectFromLoginPage записывает информацию о проверке подлинности в строку запроса. Для того чтобы пользователь не перенаправлялся на страницу входа в систему после каждого запроса, информация о проверке подлинности при каждом запросе может быть представлена как часть строки запроса. ASP.NET предоставляет метод перенесения подобной информации в строке запроса для соответствующего URL-адреса.
Пример выполнения проверки подлинности с помощью форм см. в общих сведениях о классе MobileFormsAuthentication.
Внимание! |
---|
По умолчанию при проверке подлинности с помощью форм имя пользователя и пароль передаются открытым текстом. Поэтому для нее и передачи другой важной информации следует использовать протокол HTTPS и устанавливать атрибут requiresSSL элемента <forms> в файле Web.config. Если устройство не поддерживает протокол SSL напрямую или через шлюз, но пытается получить доступ к странице, требующей протокол SSL, пользователь получит сообщение об ошибке. |
Проверка подлинности на устройствах, не поддерживающих файлы Cookie
Модели проверки подлинности веб-обозревателей обычно используют файлы Cookie для отслеживания проверки подлинности пользователя. Многие мобильные устройства не поддерживают файлы Cookie и поэтому не могут проводить проверку подлинности с их использованием.
При разработке для мобильных устройств важно обеспечить поддержку обычной проверки подлинности на как можно большем количестве устройств.
Для проверки подлинности без файлов Cookie требуется, чтобы билет проверки подлинности был получен в другом месте. В проверке подлинности с помощью формы при отсутствии файла Cookie модуль проверки подлинности ASP.NET проверяет на наличие билета строку запроса. Это реализуется путем включения идентификатора сеанса в строку запроса. Для этого требуется переписать все ссылки на странице для включения в них билета проверки подлинности, зависящего от следующих факторов:
Настроено ли приложение для сохранения данных без файлов Cookie? Это определяется значением свойства CookielessDataDictionary интерфейса IPageAdapter.
Требуется ли данному устройству проверка подлинности без файлов Cookie?
Примечание. Нельзя настроить отдельное устройство для проверки подлинности без файлов Cookie.
Атрибут CookielessDataDictionaryType в элементе <mobileControls> должен быть установлен нужным образом для нормальной работы проверки подлинности на устройствах, не поддерживающих файлы Cookie, равно как и на устройствах, где для атрибута SupportsCookieWithRedirect установлено значение false. По умолчанию для атрибута CookielessDataDictionaryType в файле Machine.config установлено значение CookielessData. Чтобы переопределить данный параметр для единичного приложения, нужно заменить атрибут CookielessDataDictionaryType на пустую строку ("").
Необходимо иметь в виду, что на данный момент некоторые устройства и веб-обозреватели требуют полные URL-адреса в качестве ответа на перенаправление HTTP. Установите для атрибута UseFullyQualifiedRedirectUrl значение true в элементе <system.web> файла Machine.config или Web.config (на уровне приложения). Дополнительные сведения см. в разделе Перенаправление на веб-страницу ASP.NET для мобильных устройств.
Дополнительные рекомендации по безопасности см. в разделах Защита приложений и Безопасность веб-приложений ASP.NET.
См. также
Основные понятия
Разработка безопасных страниц веб-форм для мобильных устройств