2011-01-25 4 views
2

Нам нужно настроить логику нашей аутентификации N2, чтобы добавить несколько параметров.N2 Настроить логин входа

Мне нужно добавить RadioButtonList, который содержит некоторые параметры и установить сеанс var на основе выбора этого RadioButton on Login - иначе пользователь не сможет увидеть сайт в области предварительного просмотра 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 использует стандартные формы Auth, ASP.NET Membership и поставщиков Роли под одеялом. Пока зарегистрированный пользователь либо имеет имя admin, либо входит в одну из трех стандартных ролей N2 (как мне кажется, администраторы, редактор и авторы), вы сможете получить доступ к сайту администратора.

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

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

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

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

Смежные вопросы