N2 Настройка логики входа
Нам нужно настроить логику нашей аутентификации N2, чтобы добавить пару опций.
Мне нужно добавить RadioButtonList, который содержит некоторые опции и установить переменную сеанса на основе выбора этого RadioButton при входе в систему - в противном случае пользователь не сможет увидеть сайт на панели предварительного просмотра N2. Я подумал, что мог бы просто добавить RadioButtonList в N2/Login.aspx и создать собственный класс входа в систему, который расширил N2.Edit.Login и переопределить метод Login1_Authenticate, чтобы выполнить свою собственную логику, прежде чем вызывать base.Login1_Authenticate. Кажется, что он не предназначен для расширения, и я не могу переопределить этот метод. Чтобы внести мои изменения, я должен был бы выполнить пользовательскую компиляцию N2 с этими изменениями, чего я хочу избежать (должен быть закрыт для модификации, но открыт для расширения), чтобы нам не приходилось повторять наши изменения каждый раз, когда мы обновляем N2.
Другой путь, который я попробовал, состоял в том, чтобы создать N2/CustomLogin.aspx и добавить всю мою логику в этот пользовательский класс и настроить web.config для указания на CustomLogin.aspx вместо Login.aspx - это первоначально отправило меня на правильную страницу входа, но неудачный вход в систему перенаправил меня на Login.aspx (предполагая что-то жестко запрограммированное), в котором не было опций переключателей.
Мы используем N2 CMS 2.0.0.0 в.Net 4.0 (приложение MVC)
1 ответ
N2 использует стандартные формы авторизации, ASP.NET членства и роли поставщиков под прикрытием. Пока вошедший в систему пользователь имеет имя admin или входит в одну из 3 стандартных ролей N2 (администраторы, редактор и авторы - я думаю), вы сможете получить доступ к сайту администратора.
Поэтому я рекомендую вам создать совершенно отдельную страницу входа в свое приложение. Укажите формы auth на вашей пользовательской странице входа, используя такую запись в вашем web.config:
<authentication mode="Forms">
<forms loginUrl="~/account/login"
timeout="2880" />
</authentication>
В вашей пользовательской форме входа в систему вы можете выполнять стандартные действия по авторизации форм для входа пользователя в систему, а также устанавливать переменную сеанса.
Я сделал это несколько раз, и он отлично работает. Если вы не можете заставить его работать, я предлагаю вам предоставить образец, который демонстрирует проблему, и я посмотрю, смогу ли я помочь.