2011-01-25 62 views
2

我們需要定製我們​​的N2身份驗證的邏輯以添加幾個選項。N2自定義登錄邏輯

我需要添加一個包含一些選項的RadioButtonList,並根據Login上的該RadioButton的選擇設置一個會話var,否則用戶無法在N2的預覽窗格中看到該網站。我認爲我可以將RadioButtonList添加到N2/Login.aspx,並創建一個自定義的Login Class,它擴展了N2.Edit.Login,並在調用base.Login1_Authenticate之前重寫Login1_Authenticate方法來執行我的自定義邏輯。它似乎不是可擴展的,我不能覆蓋該方法。爲了做出我的更改,我必須對這些更改進行自定義編譯,這些更改是我想要避免的(應該關閉以進行修改,但可以打開以進行擴展),因此我們不必在每次更新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標準角色之一(管理員,編輯者和作者 - 我認爲),您就可以訪問管理站點。

所以我建議你在你的應用程序中創建一個完全獨立的登錄頁面。使用你的web.config這樣一個條目,爲您的自定義登錄頁面點窗體身份驗證:

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

在您的自定義登錄表單,你可以做標準窗體身份驗證的東西來獲得用戶登錄,以及設置你的會話變量。

我已經做了幾次,它工作正常。如果你無法正常工作,我建議你提供一個演示問題的示例,我會看看我能否提供幫助。