что альтернативы там к использованию global.asax?

Разбивка на страницы в DynamoDB выполняется путем установки для параметра ExclusiveStartKey значения LastEvaluatedKey, возвращенного из предыдущего результата. Невозможно запустить после определенного количества элементов, как вы можете с OFFSET в MySQL.

5
задан Alexander Bird 21 November 2008 в 04:17
поделиться

3 ответа

HttpModules являются альтернативой global.asax

(см. также https://www.codeguru.com/csharp/.net/net_asp/article.php/c19389/HTTP-Handlers-and-HTTP-Modules-in-ASPNET.htm
http://codebetter.com/blogs/karlseguin/archive/2006/06/12/146356.aspx )

HttpModules регистрируются в web.config; который, удобно, настраиваем на уровне каталога. Таким образом, каждый каталог может иметь свой собственный уникальный набор модулей (которые наследованы в более низких каталогах). Все модули имеют ту же функциональность как найденные в global.asax.

В основном через каждый запрос страницы проходят каждый зарегистрированный модуль, прежде чем это когда-либо доберется до самого фактического кода страницы. Это происходит независимо от того, какой запрос это:

"page.aspx"    "page.html"
    |             |
(   |  module 1   |  )
(   |  module 2   |  )
(   |  module 3   |  )
    V             V
(handler 1) (handler 2)

((намного лучшее изображение и описание могут быть найдены в https://www.codeguru.com/csharp/.net/net_asp/article.php/c19389/HTTP-Handlers-and-HTTP-Modules-in-ASPNET.htm)),

Таким образом все, что необходимо сделать, определяют код как модуль вместо в global.asax. Если пользователь не аутентифицируется, то: response.redirect("login.aspx") остановит управление от когда-либо достижения обработчика и анализировать/возвращать/выполнять требуемую страницу.

Это немного более сложно, чем это, таким образом, лучшее описание/учебное руководство может быть найдено в codeguru веб-сайте.

10
ответ дан 13 December 2019 в 19:38
поделиться

Я вполне уверен, что Ваш код собирается предоставить доступ всем, после того как единственный человек входит в систему - вероятно, не, что Вы хотите.

Согласно http://msdn.microsoft.com/en-us/library/ms178473.aspx:

"Названный, когда первый ресурс (такой как страница) в приложении ASP.NET требуют. Метод Application_Start называют только в один раз во время жизненного цикла приложения"

Кроме того, согласно http://support.microsoft.com/kb/307598#1 "Переменные состояния приложения являются, в действительности, глобальными переменными для каждого приложения ASP.NET".

Я предложил бы, чтобы Вы использовали созданный в Членстве API и ограничили доступ с помощью web.config файлов.

Если Вы открыты для использования Членства API вместо того, чтобы прокрутить Ваш собственный механизм аутентификации, можно использовать web.config, чтобы проверить, авторизовывается ли пользователь для конкретной папки. Вы можете также относительно просто сделать, чтобы пользователь вошел в систему на одном сайте и автоматически был зарегистрирован в другие сайты путем совместного использования билетов аутентификации - если они - все на том же корневом домене.

Для совместного использования билетов аутентификации см.: http://msdn.microsoft.com/en-us/library/ms998288.aspx и http://www.netomatix.com/development/singlesignon.aspx

Поскольку, как использовать web.config для ограничения доступа: http://www.devhood.com/Tutorials/tutorial_details.aspx?tutorial_id=85

1
ответ дан 13 December 2019 в 19:38
поделиться

На самом деле я полагаю, что существует всего один global.asax на приложение asp.net. Если Вы хотите, чтобы example.com/subsite1 был другим приложением из example.com/subsite2, можно создать два различных приложения в IIS. В результате они будут работать в совершенно различных доменах приложения (хотя они могут быть в том же процессе (aspnet_wp.exe или w3wp.exe) и даже совместно использовать пулы приложений). По сути, если они - различные приложения, они должны также добраться, чтобы иметь независимые global.asax файлы.

Превратить каталог в приложение. Откройте IIS-> Find directory/sub сайт, щелкните правой кнопкой->, вкладка Properties-> Home Directory-> Нажимает "Create".

Для получения дополнительной информации о доменах приложения и рабочих процессах, рассмотрите чтение этой записи в блоге. Надежда, которая помогает.

0
ответ дан 13 December 2019 в 19:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: