N2 Настройка логики входа - PullRequest
       8

N2 Настройка логики входа

2 голосов
/ 25 января 2011

Нам необходимо настроить логику нашей аутентификации 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 Ответ

1 голос
/ 23 февраля 2011

N2 использует стандартные формы проверки подлинности, ASP.NET членство и роли поставщиков под прикрытием. Если вошедший в систему пользователь имеет имя admin или входит в одну из 3 стандартных ролей N2 (администраторы, редактор и авторы - я думаю), вы сможете получить доступ к сайту администратора.

Поэтому я рекомендую вам создать в приложении совершенно отдельную страницу входа. Направьте авторизацию формы на свою пользовательскую страницу входа, используя такую ​​запись в web.config:

<authentication mode="Forms">
  <forms loginUrl="~/account/login"
         timeout="2880" />
</authentication>

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

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

...