Вы можете указать DNN перенаправить на специальную страницу при входе и выходе.
Посетите Администратор -> Учетные записи пользователей -> Настройки пользователя
Вы бы хотели перенаправить их на страницу «LoginSuccess.aspx», на которой был создан пользовательский модуль, который выполняет следующие действия:
- Выполняет пользовательскую логику при входе пользователя в систему
- Перенаправляет пользователя на полезную страницу
Вы можете сделать то же самое для выхода из системы. Вы можете использовать ту же страницу и тот же модуль для выхода из системы, что и при входе в систему, если хотите - вы просто захотите проверить, аутентифицирован ли текущий пользователь или нет, чтобы определить, какую логику выполнять и какую страницу перенаправить. к.
Сводка шагов для специальной страницы LoginSuccess
- Создать страницу DNN с именем LoginSuccess.aspx
- Изменить параметры страницы: не показывать в меню, приоритет карты 0, доступен только для аутентифицированных пользователей
- Создание пользовательского модуля DNN, который выполняет пользовательскую логику при входе пользователя в систему
- Добавить модуль на эту страницу
- Обязательно перенаправьте пользователя куда-нибудь после того, как ваша пользовательская логика завершит обработку
Промыть и повторить для выхода из системы
Я не знаю, позволяет ли этот метод перенаправить пользователя на последнюю страницу, на которой он находился перед входом / выходом из системы. Если бы мне пришлось угадывать, я бы предположил, что вы потеряете эту функциональность.
Если у вас возникают проблемы при выходе из системы, когда пользователь определяет, кто только что вышел из системы, это можно решить путем сохранения идентификатора пользователя в состояние сеанса при входе пользователя (в модуле DNN настраиваемого входа выше). Что-то вроде: Session ("UserID") = 'текущий идентификатор пользователя'
Работа с особыми случаями
Убедитесь, что эти «специальные страницы», содержащие эти модули обработки входа / выхода, ограничены следующим:
- Не включать в навигацию
- Карта сайта Приоритет 0
И вы, вероятно, захотите, чтобы ваш модуль «Процессор выхода из системы» выполнял следующие действия, если к нему обращаются вручную пользователь maliciuos / раздражающий / потерянный или бот (Пример: пользователь переходит прямо к MySite / ProcessLogout.aspx):
- Если к вашему модулю выхода обращаются, но сессия («ID пользователя») - ничто, тогда перенаправьте на домашнюю страницу сайта и не обрабатывайте свою пользовательскую логику выхода пользователя.
Я считаю, что это отвечает на ваш вопрос, но, возможно, не так, как вы надеялись. Я не нашел событие, которое вы могли бы просто обработать без изменения ядра DNN, как предложено @capdragon. Если вы воспользуетесь этим методом, обязательно закомментируйте его очень хорошо и измените код таким образом, чтобы его можно было вставлять при копировании для развертывания в будущих версиях DNN (например, при каждом обновлении DNN)