Практическое руководство. Конфигурация служб ASP.NET в ASP.NET AJAX
Обновлен: Ноябрь 2007
Этот пункт описывает как установить конфигурацию, разрешающую приложениям клиента, позволяющего ASP.NET AJAX, вызывать веб-службы ASP.NET (файлы .asmx). В данном разделе описываются следующие задачи:
Конфигурирование веб-служб, позволяющее вызовы из клиентского сценария.
Конфигурирование сериализации JSON.
Конфигурирование службы проверки подлинности.
Настройка службы ролей.
Настройка службы профилей.
Параметры конфигурации все сделаны в группе конфигурации system.web.extension. Дополнительные сведения см. в разделе Элемент system.web.extensions (схема параметров ASP.NET).
Конфигурирование веб-служб, позволяющее вызовы из клиентского сценария
Следующая процедура описывает как настроить веб-службы ASP.NET так, чтобы их можно было вызвать из клиентского сценария. Дополнительные сведения см. в разделе Предоставление доступа к веб-службам в клиентском сценарии.
Для вызовов веб-службы, которая не введена из разрешающих AJAX клиентов ASP.NET, класс обработчика ScriptHandlerFactory делегирует вызов обработчику по умолчанию, который использует формат SOAP вместо JSON. Это выполняется внутренне и нет необходимости предпринимать какие-либо действия. Можно также отключать протокол SOAP для веб-сервисов.
Чтобы отключить протокол SOAP для веб-сервисов
В файле Web.config веб-узла, очистите все протоколы для веб-сервисов, как показано в следующем примере:
<system.web> <webServices> <protocols> <clear/> </protocols> </webServices> </system.web>
Чтобы настроить веб-службы для разрешения вызовов из клиентского сценария
В файле Web.config веб-узла, зарегистрируйте обработчик http-данных ScriptHandlerFactory.
Этот обработчик выполняет обработку вызовов веб-служб, сделанных из сценария.
Примечание. Эти параметры конфигурации являются частью шаблона файла Web.config для любых новых веб-узлов с поддержкой AJAX, которые Вы создадите в Microsoft Visual Studio 2005.
В следующем примере показан элемент Web.config для регистрации обработчика.
<system.web> <httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/> </httpHandlers> <system.web>
Конфигурирование сериализации JSON
Если клиентский сценарий вызывает веб-службы ASP.NET, дата переходит в формат JSON. Можно настроить сериализацию JSON с помощью элемента jsonSerialization.
Чтобы настроить сериализацию JSON.
Откройте файл «Web.config» для веб-узла.
Примечание. Если Вы создаете веб-сервис в Microsoft Visual Studio 2005, файл Web.config содержит раздел system.web.extensions с закомментированными дочерними элементами.
В элементе webServices добавьте элемент jsonSerialization.
Этот элемент позволяет задавать пользовательские преобразователи и переопределять параметры по умолчанию.
Определяет следующие атрибуты сериализации. Все атрибуты являются необязательными.
recursionLimit. Задает максимальную глубину сериализации типов. Предел рекурсии по умолчанию равен 100.
maxJsonLength. Указывает максимальную длину строки JSON (максимальное число знаков UTF-8). Длина по умолчанию составляет 102400.
В следующем примере показано, как настроить элемент jsonSerialization. В этом примере maxJsonLength установлен равным 5000.
<configuration> <system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="5000"/> </webServices> </scripting> </system.web.extensions> </configuration>
Если Вы хотите использовать пользовательский преобразователь в элемент jsonSerialization, добавьте элемент converters.
Элемент содержит следующие атрибуты:
nameУникальный идентификатор.
typeПолное имя типа преобразователя.
В следующем примере показано, как настроить пользовательский преобразователь.
<configuration> <system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="50"/> <converters> <add name="MyCustomConverter" type="MyCompany.ConvertersNameSpace.MyTypeConverter"/> </converters> </jsonSerialization> </webServices> </scripting> </system.web.extensions> </configuration>
Конфигурирование служб приложений, позволяющее вызовы из клиентского сценария
Следующие процедуры описывают, как настроить встроенные службы приложений, чтобы разрешить вызовы из сценария веб-приложения, поддерживающие AJAX, которые запущены в обозревателе.
Дополнительные сведения об отладке приложений веб-служб ASP.NET, см. в следующих разделах:
Чтобы настроить службу проверки подлинности
Откройте файл «Web.config» для веб-узла.
В элементе authentication разрешите формы проверки подлинности.
Следующий пример показывает элемент authentication, настроенный для использования проверки подлинности в формах. Любые попытки неавторизованного пользователя получить доступ к защищенным ресурсам будут перенаправляться на страницу Login.aspx в корень веб-узла.
<system.web> <authentication mode="Forms"> <forms cookieless="UseCookies" loginUrl="~/login.aspx"/> </authentication> <system.web>
Дополнительные сведения см. в разделе Использование проверки подлинности с помощью форм в ASP.NET AJAX.
В элементе system.web.extensions разрешите службу проверки подлинности.
В следующем примере показано, как включить службу проверки подлинности.
<system.web.extensions> <scripting> <webServices> <authenticationService enabled="true" /> </webServices> </scripting> </system.web.extensions>
Настройка службы ролей
Откройте файл «Web.config» для веб-узла.
В элементе system.web.extensions разрешите службу ролей.
В следующем примере показано, как включить службу ролей.
<system.web.extensions> <scripting> <webServices> <rolesService enabled="true" /> </webServices> </scripting> </system.web.extensions>
Настройка службы профилей.
Откройте файл «Web.config» для веб-узла.
Если они еще не определены, определите свойства профиля, которые Вы хотите получить в приложении.
Были определены свойства профиля в разделе profile при помощи использования такого синтаксиса, как, например, в следующем примере. Для сгруппированных свойств используйте элемент group.
<system.web> <profile enabled="true"> <add name=" Backgroundcolor" type="System.String" defaultValue="white" /> <add name=" Foregroundcolor" type="System.String" defaultValue="black" /> <properties> <group name="Address"> <add name="Street" type="System.String" /> <add name="City" type="System.String"/> <add name="PostalCode" type="System.String" /> </group> </properties> </profile> </system.web>
Дополнительные сведения см. в разделе Общие сведения о свойствах профилей ASP.NET.
В элементе system.web.extensions включите службу профилей.
В следующем примере показано, как включить службу профилей.
<system.web.extensions> <scripting> <webServices> < profileService enabled="true" /> </webServices> </scripting> </system.web.extensions>
Чтобы сделать свойство профиля доступным в клиентском приложения, добавьте имя свойства в атрибут readAccessProperties элемента profileService.
Для каждого свойства профиля сервера, которое может быть обновлено из клиентского сценария, добавьте имя свойства в атрибут writeAccessProperties.
В следующем примере показано, как предоставлять доступ к отдельным свойствам и задавать для клиентского приложения права на чтение и запись этих свойств.
<profileService enabled="true" readAccessProperties="Backgroundcolor,Foregroundcolor" writeAccessProperties=" Backgroundcolor,Foregroundcolor"/>
См. также
Задачи
Практическое руководство. Настройка служб WCF в ASP.NET AJAX
Основные понятия
Общие сведения о конфигурационном ASP.NET
Иерархия и наследование файла конфигурации ASP.NET
Изменение файлов конфигурации ASP.NET
Ссылки
Элемент system.web.extensions (схема параметров ASP.NET)