2011-04-19 33 views
1

最後一場比賽我必須添加一些邏輯,當用戶登錄和註銷DNN應用。但我不想更改登錄模塊或dnn中的任何內容。有什麼事情我可以抓到?首先在DotNetNuke的應用

回答

-2

我會修改cmdLogin_Click()和呼叫添加到您的類。

我已經在過去做了。該頁面不會經常更改。

+1

-1可能聽起來合理,但這會讓人們走上糟糕的道路。升級可以並且將會發生,並且通常進行這些代碼修改的人員不是執行升級的人員。冒險生意! – 2015-03-10 20:23:12

3

你可以告訴DNN重定向到在登錄和註銷專門的頁面。

訪問管理 - >用戶帳戶 - >用戶設置

enter image description here

你會希望他們重定向到一個「LoginSuccess.aspx」頁面,有你建立在它是做一個自定義模塊以下情況:

  • 在用戶登錄執行定製邏輯
  • 將用戶重定向到一個有用的頁面

你可以做用戶註銷相同。如果您願意,您可以使用與登錄相同的頁面和相同模塊進行註銷 - 您只需要檢查當前用戶是否已通過身份驗證,以確定要執行哪個邏輯以及將其重定向到哪個頁面至。有專門的LoginSuccess頁

  1. 創建DNN頁步驟的

    摘要稱爲LoginSuccess.aspx

  2. 編輯頁面設置:不要在菜單,站點地圖優先級0,可見不顯示驗證用戶只
  3. 創建在用戶登錄進行自定義邏輯自定義DNN模塊
  4. 路模塊到這個網頁上
  5. 麥Ë確保您的自定義邏輯之後某處重定向用戶完成處理

沖洗和重複用於註銷

我不知道這個方法可以讓你將用戶重定向到他們之前的最後一頁登錄/註銷。如果我不得不猜測,我會猜測你失去了這個功能。

如果您有在用戶註銷決定誰剛剛登出的麻煩,這可以通過在用戶登錄保存用戶名進入會話狀態(在您的自定義登錄DNN模塊上方)解決。喜歡的東西:會議(「用戶名」)=「當前用戶ID」

有特殊案件的處理

確保限制這些「特殊頁面」包含這些登錄/註銷處理模塊(S)做以下:

  • 在導航不包括0

而且

  • 網站地圖優先你可能會想你的「註銷處理器」模塊進行操作,如果它是由maliciuos /煩人/丟失的用戶或機器人手動訪問以下(例如:用戶直接導航到的MySite/ProcessLogout.aspx):

    • 如果你的註銷模塊被訪問,但會話(「用戶ID」)是什麼都沒有,然後重定向到該站點的主頁,並且不處理你的自定義用戶註銷邏輯。

    我相信這會回答你的問題,但也許不是你所希望的。我沒有找到一個事件,你可以簡單地處理,而不需要像@capdragon建議的那樣修改DNN核心。如果你使用這種方法,一定要非常好地評論它,並且修改代碼的方式應該是複製粘貼,以便部署到未來版本的DNN(例如,每次升級DNN時)

  • +0

    聰明的解決方案! – 2015-03-10 20:24:46