有時候我們需要自定DNN的登入界面,比如把版式改為橫版,原始的DNN登入子產品是豎向排列控件的,如圖:
不就是移動了個地方嗎,還是照樣改就可以了。當你打開這個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 的登入視窗):看到沒, 多了一個使用LiveID登入.
了解了這一點,我們就明白如何在DNN 4.X下修改登入界面了,不但要修改Admin/Authenticaion/Login.ascx,還有修改與你選擇登入方式對應的登入控件單獨的axcx檔案。
這幾個Authentication Provider在這 幾個目錄下:
- DesktopModules/AuthenticationServices/DNN
- DesktopModules/AuthenticationServices/LiveID
- DesktopModules/AuthenticationServices/OpenID