我正在設計一個使用母版頁的網站。在ASP.NET主頁中更改控件
我有一個登錄文本框和一個用戶可以用來登錄的標籤。這些控件位於我的母版頁上。
但是,即使在用戶登錄文本框並且標籤要求電子郵件ID和密碼顯示在下一頁,我在成功登錄後重定向。
用戶之後,我想隱藏登錄標籤和文本框,而是顯示一個歡迎用戶消息。
但我無法在下一頁中編輯我重定向的地方。我該如何隱瞞?
我正在設計一個使用母版頁的網站。在ASP.NET主頁中更改控件
我有一個登錄文本框和一個用戶可以用來登錄的標籤。這些控件位於我的母版頁上。
但是,即使在用戶登錄文本框並且標籤要求電子郵件ID和密碼顯示在下一頁,我在成功登錄後重定向。
用戶之後,我想隱藏登錄標籤和文本框,而是顯示一個歡迎用戶消息。
但我無法在下一頁中編輯我重定向的地方。我該如何隱瞞?
在主頁面中不應該有登錄文本框。
如果你有它出於某種原因,我建議你有不同的登錄頁面和登錄頁面的母版頁。
這裏的解決方案通常是使用模板控件;這意味着,根據狀態,可以顯示適當的模板,因此可以顯示控件。
在這種情況下,已經有了LoginView
控件,它爲未經身份驗證的用戶提供了兩種模板。默認情況下,如果將顯示登錄模板,那麼在進行身份驗證並重新加載頁面時,將顯示另一個模板,使您可以使用LoginName
控件顯示登錄的用戶名。
提供的鏈接應該爲您提供所有需要知道的信息,以便讓它正常運行,考慮到您已經將自己帶到了這一步!然而,這是段從文章中顯示相關標記和可用的屬性/事件等:夠抽象與自己的身份驗證方法一致
<asp:LoginView
EnableTheming="True|False"
EnableViewState="True|False"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
OnViewChanged="ViewChanged event handler"
OnViewChanging="ViewChanging event handler"
runat="server"
SkinID="string"
Visible="True|False">
<AnonymousTemplate>
<!-- child controls -->
</AnonymousTemplate>
<LoggedInTemplate>
<!-- child controls -->
</LoggedInTemplate>
<RoleGroups>
<asp:RoleGroup
Roles="string">
<ContentTemplate>
<!-- child controls -->
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
正如你可以看到,這個控件提供,因爲有很多選項可以從ASP.NET中進行選擇。
如果你只想隱藏它,把控制面板中的控制,然後隱藏在頁面加載的面板如果用戶已登錄。
因此,當用戶登錄,使用登錄按鈕,設置會話變量輸入自己的用戶ID是這樣的:
Session("UserID") = <some formula to get number>
然後在母版頁寫的頁面加載代碼段:
If not Session("UserID") is nothing then
pnlLogin.Visible = False
End If
然而有更好的控制,而m提供正確的方式來執行這種類型的操作,例如登錄控制,因此不建議使用此方法。
如果您使用的是FormsAuthentication
,則可以使用LoginView
根據用戶的登錄狀態顯示控件。
<asp:LoginView ID="LoginViewTemplate" runat="server">
<LoggedInTemplate>
// Welcome message goes here
</LoggedInTemplate>
<AnonymousTemplate>
// Textboxes and other login stuff goes here
</AnonymousTemplate>
</asp:LoginView>
你是如何登錄用戶的?餅乾?表單認證? – Curt
請顯示一些示例代碼 – Curt