2017-08-15 44 views
-1

我使用一把umbraco 7定義不同的登錄頁面的web.config

我有2個不同類型的成員:讓我們說MemberTypeOneMemberTypeTwo

web.config我在殼體定義的默認登陸頁面的圖被標記爲[MemberAuthorize]

<authentication mode="Forms"> 
     <forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" /> 
    </authentication> 

我想定義爲每個成員類型例如兩個不同的登錄頁面。對於MemberTypeOne將是/login-member-one.aspx,因爲MemberTypeTwo將是/login-member-two.aspx在相關用戶未被認證的情況下。

我可以和如何實現它嗎?由於

+0

爲什麼不能通過同一個表單登錄兩個成員類型('角色')? – mjwills

+0

由於它們的內容不同,一個使用主站點,另一個使用umbraco內的微型站點。 – nickornotto

+0

您知道用戶登錄後的成員類型**。您在**之前如何知道它**以顯示正確的登錄頁面? –

回答

0

定義所有內容 - 兩個成員類型 - 在login.aspx頁面內,但不同的面板內 - 假設爲MemberTypeTwoPanelOneMemberTypeOnePanelTwo

接下來,在代碼隱藏文件中的Page_Load事件期間,確定成員的類型並相應地設置兩個面板的可見性。即如果該成員的類型爲MemberTypeOne設置Panel1.Visible = TruePanel2.Visible = False

請注意,設置服務器端控件Visible屬性使其無法在所有寫入響應。

如果您想基於路徑區分成員類型,則可以爲您的登錄頁面提供不同的查詢字符串。例如。

MemberTypeOne登錄鏈接可能是/login.aspx?membertype=1

MemberTypeTwo登錄鏈接可能是/login.aspx?membertype=2

UPDATE

由於您的佈局需要被加載不同的母版頁,您需要重定向到另一頁的響應,導致整個頁面生命週期重新開始。我的意思是,您可以使用login.aspx作爲登錄過程的起點。在Page_Load期間,檢查成員類型並執行Server.Transfer到適當的頁面。

+0

謝謝,但我不能。他們使用不同的主人,不同的佈局,不同的東西。一個登錄頁面不是一個選項 – nickornotto

+0

位於不同文件夾/名稱空間下的兩種成員類型的受保護頁面是否?如果是這樣,你可以在每個文件夾中定義不同的'web.config'文件,其中包含受保護的資源... –

+0

我無法檢查什麼是成員類型後,我重定向到web.config的登錄頁面 – nickornotto