HTTPModule вызывается на главной странице, но не на подстранице - PullRequest
1 голос
/ 27 августа 2010

Я сталкиваюсь со странной ошибкой в ​​MOSS 2007, работающем под Windows 2008. Я создал собственный модуль HTTP, который запускает событие OnAuthenticate приложения.Он в основном создает пользовательский файл cookie, который используется другим приложением для аутентификации пользователя, создавая эффект единого входа.

Все прошло нормально под сервером разработки под управлением Win2K3.Однако на промежуточном сервере происходят следующие странные вещи:

a) Модуль запускается на базовой странице, например, https://conn.test.com/Pages/Default.aspx,, однако, если сомон переходит на подстраницу, например:https://conn.test.com/Operations/Pages/Operations%20Portal.aspx, похоже, что он не срабатывает.

b) Модуль запускается из IE, но не из Firefox или Chrome.Единственное различие между ними заключается в том, что определенная веб-часть загружается и работает в IE, но не загружается и не работает в Chrome или FF.

Может кто-нибудь помочь объяснить поведение этого.HTTPMOdule переопределяет событие AuthenticateRequest приложения.

1 Ответ

0 голосов
/ 06 сентября 2010

Извините, понял это.Проблема заключается в том, что метод Init обработчика событий для OnAuthenticate работает с привилегиями базового пользователя ASP.NET, а основной делегат обработчика событий работает с учетными данными аутентифицированного пользователя.

Я записал код в журнал событий, и, очевидно, для этого нужны привилегии более высокого уровня.По этой причине делегат модуля стрелял, но ничего не регистрировалось.

Я предполагаю, что веб-часть на главной странице работала с привилегиями какого-то другого пользователя, у которого были необходимые права доступа, и, следовательно, все работало там.Так как он не работает в FF или Chrome, модуль не работает в этих браузерах.Кроме того, подстраницы не имеют веб-части, следовательно, непосредственно переходя к ним, также вызывает проблему.

Проблема была отсортирована после того, как я добавил SPSecurity.runWithElevatedPriviliges вокруг кода журнала.

...