天天看點

在DNN 4.X中自定義登入界面

有時候我們需要自定DNN的登入界面,比如把版式改為橫版,原始的DNN登入子產品是豎向排列控件的,如圖:

因為隻是UI上的變化,思路很簡單,找到對應控件的ascx檔案,修改其中的HTML和CSS即可,具體可參考我之前的一篇文章: 在DotNetNuke中通過修改ascx檔案源碼自定義界面 但到了DNN 4.x 情況有了一些變化,admin\Security\signin.ascx 這個檔案沒有了, Login 控件被移到了Admin/Authenticaion/Login.ascx
在DNN 4.X中自定義登入界面

不就是移動了個地方嗎,還是照樣改就可以了。當你打開這個ascx檔案時,卻發現怎麼也找不到User Name和Passoword這些東西,這是怎麼回事呢?

原來,DNN 4.x為了支援多種登入方式,對Login控件進行了重新設計,因為使用者可以設定使用多種登入方式,是以登入的部分比如User Name 和Password是動态加入的。在Admin/Authenticaion/Login.ascx裡,我們可以看到這寫代碼:

<DNN:DNNTabStrip 

                    ID="tsLogin" 

                    runat="server" 

                    TabRenderMode="All"

                    CssTabContainer="LoginTabGroup"

                    CssContentContainer="LoginContainerGroup" 

                    DefaultContainerCssClass="LoginContainer"

                    DefaultLabel-CssClass="LoginTab"

                    DefaultLabel-CssClassHover="LoginTabHover"

                    DefaultLabel-CssClassSelected="LoginTabSelected" 

                    visible="false" />

這就是用來動态加載不同的登入方式的DNNTabStrip,最後的效果如下(

www.dotnetnuke.com 的登入視窗):
在DNN 4.X中自定義登入界面

看到沒, 多了一個使用LiveID登入.

了解了這一點,我們就明白如何在DNN 4.X下修改登入界面了,不但要修改Admin/Authenticaion/Login.ascx,還有修改與你選擇登入方式對應的登入控件單獨的axcx檔案。

這幾個Authentication Provider在這 幾個目錄下:

  • DesktopModules/AuthenticationServices/DNN
  • DesktopModules/AuthenticationServices/LiveID
  • DesktopModules/AuthenticationServices/OpenID
在DNN 4.X中自定義登入界面

繼續閱讀