我们需要定制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 app)上使用N2 CMS 2.0.0.0。
发布于 2011-02-24 04:33:58
N2在幕后使用标准的表单身份验证、ASP.NET成员资格和角色提供者。只要登录的用户名为admin或属于3个N2标准角色(管理员、编辑和作者-我认为)之一,您就可以访问管理员站点。
所以我建议你在你的应用中创建一个完全独立的登录页面。在您的web.config中使用如下条目指向表单验证您的自定义登录页面:
<authentication mode="Forms">
<forms loginUrl="~/account/login"
timeout="2880" />
</authentication>在您的自定义登录表单中,您可以执行标准的表单身份验证来让用户登录,以及设置您的会话变量。
我已经这样做过几次了,它工作得很好。如果你不能让它工作,我建议你提供一个例子来演示这个问题,我会看看我是否能帮上忙。
https://stackoverflow.com/questions/4798570
复制相似问题