我们需要自定义 N2 身份验证的逻辑以添加几个选项。
我需要添加一个包含一些选项的 RadioButtonList,并根据登录时对该 RadioButton 的选择设置一个会话变量 - 否则用户无法在 N2 的预览窗格中看到该站点。我想我可以将 RadioButtonList 添加到 N2/Login.aspx 并创建一个扩展 N2.Edit.Login 的自定义登录类,并在调用 base.Login1_Authenticate 之前覆盖 Login1_Authenticate 方法来执行我的自定义逻辑。它似乎不是为可扩展而设计的,我无法覆盖该方法。为了进行更改,我必须使用这些更改对 N2 进行自定义编译,我想避免这种情况(应该对修改开放但对扩展开放),因此我们不必每次更新 N2 时都重做更改。
我尝试的另一条路线是创建 N2/CustomLogin.aspx 并在该自定义类中添加我的所有逻辑并将 web.config 设置为指向 CustomLogin.aspx 而不是 Login.aspx - 这最初将我发送到正确的登录页面但是登录失败将我重定向到没有单选按钮选项的 Login.aspx(假设是硬编码的)。
我们在 .Net 4.0(MVC 应用程序)上使用 N2 CMS 2.0.0.0