LoginView 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
根據使用者的驗證狀態和角色成員資格,顯示指定使用者的適當內容範本。
public ref class LoginView : System::Web::UI::Control, System::Web::UI::INamingContainer
[System.ComponentModel.Bindable(false)]
[System.Web.UI.Themeable(true)]
public class LoginView : System.Web.UI.Control, System.Web.UI.INamingContainer
[<System.ComponentModel.Bindable(false)>]
[<System.Web.UI.Themeable(true)>]
type LoginView = class
inherit Control
interface INamingContainer
Public Class LoginView
Inherits Control
Implements INamingContainer
- 繼承
- 屬性
- 實作
範例
下列程式代碼範例示範如何設定 LoginView 控件所支援之三種範本類型的範本。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<p>
<asp:LoginStatus id="LoginStatus1" runat="server"></asp:LoginStatus></p>
<p>
<asp:LoginView id="LoginView1" runat="server">
<AnonymousTemplate>
Please log in for personalized information.
</AnonymousTemplate>
<LoggedInTemplate>
Thanks for logging in
<asp:LoginName id="LoginName1" runat="Server"></asp:LoginName>.
</LoggedInTemplate>
<RoleGroups>
<asp:RoleGroup Roles="Admin">
<ContentTemplate>
<asp:LoginName id="LoginName2" runat="Server"></asp:LoginName>, you
are logged in as an administrator.
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView></p>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<p>
<asp:LoginStatus id="LoginStatus1" runat="server"></asp:LoginStatus></p>
<p>
<asp:LoginView id="LoginView1" runat="server">
<AnonymousTemplate>
Please log in for personalized information.
</AnonymousTemplate>
<LoggedInTemplate>
Thanks for logging in
<asp:LoginName id="LoginName1" runat="Server"></asp:LoginName>.
</LoggedInTemplate>
<RoleGroups>
<asp:RoleGroup Roles="Admin">
<ContentTemplate>
<asp:LoginName id="LoginName2" runat="Server"></asp:LoginName>, you
are logged in as an administrator.
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView></p>
</form>
</body>
</html>
備註
在本主題中:
介紹
LoginView 控件會根據使用者是否經過驗證,為不同的用戶顯示不同的網站內容範本(或「檢視」),如果是,則會顯示他們所屬的網站角色。
注意
如果您不熟悉 ASP.NET 中可用的登入控件集,請參閱 ASP.NET 登入控件概觀 再繼續。 如需與登入控件和成員資格相關的其他主題清單,請參閱 使用成員資格管理使用者。
儲存在 AnonymousTemplate 屬性中的範本會顯示給尚未登入的網站的任何訪客。 登入用戶之後,月臺會顯示與 RoleGroups 屬性中其中一個使用者角色相關聯的範本,或 LoggedInTemplate 屬性中指定的默認範本。
當您將範本指派給 LoginView 類別的三個範本屬性之任一時,LoginView 控件會管理在各種範本之間切換:
AnonymousTemplate - 指定要向使用者顯示未登入網站的範本。 登入的用戶永遠不會看到此範本。
LoggedInTemplate - 指定預設範本,以向用戶顯示登入網站,但不屬於任何具有已定義範本的角色群組。
RoleGroups - 指定要向具有已定義角色群組範本之角色成員的登入使用者顯示範本。 內容範本與 RoleGroup 實例中特定角色集相關聯。
角色群組範本會依來源中定義的順序進行搜尋。 第一個相符的角色群組範本會顯示給使用者。 如果使用者是多個角色的成員,則會使用符合任何使用者角色的第一個角色群組範本。 如果多個範本與單一角色相關聯,則只會使用第一個定義的範本。
下表描述使用各種範本組合時,LoginView 控件的行為。
LoggedIn Template 屬性 | 匿名範本屬性 | RoleGroups 屬性 | LoginView 行為 |
---|---|---|---|
未設定 | 未設定 | 未設定 | 不顯示任何內容。 |
設置 | 未設定 | 未設定 | 只有當使用者登入時,才會顯示內容。 |
未設定 | 設置 | 未設定 | 只有當使用者未登入時,才會顯示內容。 |
未設定 | 未設定 | 設置 | 顯示 RoleGroups 集合中符合其中一個使用者角色的第一個範本。 如果找不到相符專案,則不會顯示任何內容。 |
設置 | 設置 | 未設定 | 如果使用者已登入,則會在 LoggedInTemplate 屬性中顯示指定的範本。 如果使用者未登入,則會在 AnonymousTemplate 屬性中顯示指定的範本。 |
設置 | 設置 | 設置 | 如果使用者登入,則會在符合其中一個使用者角色的 RoleGroups 集合中顯示第一個範本。 如果找不到相符專案,則顯示 LoggedInTemplate 屬性中指定的範本。 如果使用者未登入,則會顯示 AnonymousTemplate 屬性中指定的範本。 |
設置 | 未設定 | 設置 | 如果使用者登入,則會在符合其中一個使用者角色的 RoleGroups 集合中顯示第一個範本。 如果找不到相符專案,則顯示 LoggedInTemplate 屬性中指定的範本。 如果使用者未登入,則不會顯示任何內容。 |
未設定 | 設置 | 設置 | 如果使用者登入,則會在符合其中一個使用者角色的 RoleGroups 集合中顯示第一個範本。 如果找不到相符專案,則不會顯示任何專案。 如果使用者未登入,則會顯示 AnonymousTemplate 屬性中指定的範本。 |
AnonymousTemplate 和 LoggedInTemplate 可以搭配任何驗證配置使用,以設定 Page 物件 User 屬性的 Name 屬性。 您必須設定角色管理,才能使用 RoleGroups 屬性,根據用戶網站上的角色定義範本。 如需詳細資訊,請參閱 瞭解角色管理。
Focus 方法不會將網頁的初始焦點設定為 LoginView 控件或其任何子控件。
LoginView 控件中包含的控件會在 PreRender 事件之後建立。 若要將焦點設定為 LoginView所包含的子控件,請處理 On_PreRender
並呼叫其 Focus 方法。 您也可以使用 ViewChanging 和 ViewChanged 事件,以程式設計方式存取 LoginView 控件範本中的控制項。
宣告式語法
<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>
建構函式
LoginView() |
初始化 LoginView 控件的新實例。 |
屬性
Adapter |
取得控制器特定配接器。 (繼承來源 Control) |
AnonymousTemplate |
取得或設定範本,以顯示給未登入網站的使用者。 |
AppRelativeTemplateSourceDirectory |
取得或設定包含這個控制項之 Page 或 UserControl 物件的應用程式相對虛擬目錄。 (繼承來源 Control) |
BindingContainer |
取得包含此控件數據系結的 控件。 (繼承來源 Control) |
ChildControlsCreated |
取得值,這個值表示是否已建立伺服器控制件的子控件。 (繼承來源 Control) |
ClientID |
取得由 ASP.NET 產生的 HTML 標記控件識別碼。 (繼承來源 Control) |
ClientIDMode |
取得或設定用來產生 ClientID 屬性值的演算法。 (繼承來源 Control) |
ClientIDSeparator |
取得字元值,表示 ClientID 屬性中使用的分隔符。 (繼承來源 Control) |
Context |
取得與目前 Web 要求之伺服器控制項相關聯的 HttpContext 物件。 (繼承來源 Control) |
Controls |
取得包含 LoginView 控件之子控件的 ControlCollection 物件。 |
DataItemContainer |
如果命名容器實作 IDataItemContainer,則取得命名容器的參考。 (繼承來源 Control) |
DataKeysContainer |
如果命名容器實作 IDataKeysControl,則取得命名容器的參考。 (繼承來源 Control) |
DesignMode |
取得值,指出控件是否在設計介面上使用。 (繼承來源 Control) |
EnableTheming |
取得或設定值,指出主題是否可以套用至 LoginView 控件。 |
EnableViewState |
取得或設定值,指出伺服器控制項是否將檢視狀態及其包含之任何子控件的檢視狀態保存至要求用戶端。 (繼承來源 Control) |
Events |
取得控制項的事件處理程式委派清單。 這個屬性是唯讀的。 (繼承來源 Control) |
HasChildViewState |
取得值,指出目前伺服器控件的子控件是否有任何儲存的檢視狀態設定。 (繼承來源 Control) |
ID |
取得或設定指派給伺服器控制件的程式設計標識碼。 (繼承來源 Control) |
IdSeparator |
取得用來分隔控件識別碼的字元。 (繼承來源 Control) |
IsChildControlStateCleared |
取得值,指出這個控件中包含的控件是否具有控件狀態。 (繼承來源 Control) |
IsTrackingViewState |
取得值,這個值表示伺服器控件是否將變更儲存至其檢視狀態。 (繼承來源 Control) |
IsViewStateEnabled |
取得值,指出這個控件是否啟用檢視狀態。 (繼承來源 Control) |
LoadViewStateByID |
取得值,指出控件是否參與藉由 ID 而不是索引載入其檢視狀態。 (繼承來源 Control) |
LoggedInTemplate |
取得或設定範本,以顯示登入網站的網站使用者,但不是在 RoleGroups 屬性中指定的其中一個角色群組成員。 |
NamingContainer |
取得伺服器控制項命名容器的參考,這個容器會建立唯一的命名空間,以區分具有相同 ID 屬性值的伺服器控制件。 (繼承來源 Control) |
Page |
取得包含伺服器控制件之 Page 實例的參考。 (繼承來源 Control) |
Parent |
取得頁面控件階層中伺服器控制件之父控件的參考。 (繼承來源 Control) |
RenderingCompatibility |
取得值,指定轉譯 HTML 與 的 ASP.NET 版本相容。 (繼承來源 Control) |
RoleGroups |
取得將內容範本與特定角色建立關聯之角色群組的集合。 |
Site |
取得在設計介面上呈現時裝載目前控制件之容器的相關信息。 (繼承來源 Control) |
SkinID |
取得或設定要套用至 LoginView 控件的面板。 |
TemplateControl |
取得或設定包含這個控件之範本的參考。 (繼承來源 Control) |
TemplateSourceDirectory |
取得包含目前伺服器控制件之 Page 或 UserControl 的虛擬目錄。 (繼承來源 Control) |
UniqueID |
取得伺服器控制件的唯一階層式限定標識碼。 (繼承來源 Control) |
ValidateRequestMode |
取得或設定值,這個值表示控件是否會檢查瀏覽器的用戶端輸入是否有潛在的危險值。 (繼承來源 Control) |
ViewState |
取得狀態資訊的字典,可讓您跨相同頁面的多個要求儲存和還原伺服器控件的檢視狀態。 (繼承來源 Control) |
ViewStateIgnoresCase |
取得值,這個值表示 StateBag 物件是否不區分大小寫。 (繼承來源 Control) |
ViewStateMode |
取得或設定這個控件的檢視狀態模式。 (繼承來源 Control) |
Visible |
取得或設定值,這個值表示伺服器控制項是否呈現為頁面上的UI。 (繼承來源 Control) |
方法
事件
DataBinding |
當伺服器控制項系結至數據源時發生。 (繼承來源 Control) |
Disposed |
發生於從記憶體釋放伺服器控制項時,這是要求 ASP.NET 頁面時伺服器控件生命週期的最後階段。 (繼承來源 Control) |
Init |
當伺服器控件初始化時發生,這是其生命週期中的第一個步驟。 (繼承來源 Control) |
Load |
當伺服器控制項載入至 Page 物件時發生。 (繼承來源 Control) |
PreRender |
發生在載入 Control 物件之後,但在轉譯之前發生。 (繼承來源 Control) |
Unload |
發生於伺服器控制件從記憶體卸除時。 (繼承來源 Control) |
ViewChanged |
在檢視變更之後發生。 |
ViewChanging |
發生於檢視變更之前。 |
明確介面實作
IControlBuilderAccessor.ControlBuilder |
如需此成員的描述,請參閱 ControlBuilder。 (繼承來源 Control) |
IControlDesignerAccessor.GetDesignModeState() |
如需此成員的描述,請參閱 GetDesignModeState()。 (繼承來源 Control) |
IControlDesignerAccessor.SetDesignModeState(IDictionary) |
如需此成員的描述,請參閱 SetDesignModeState(IDictionary)。 (繼承來源 Control) |
IControlDesignerAccessor.SetOwnerControl(Control) |
如需此成員的描述,請參閱 SetOwnerControl(Control)。 (繼承來源 Control) |
IControlDesignerAccessor.UserData |
如需此成員的描述,請參閱 UserData。 (繼承來源 Control) |
IDataBindingsAccessor.DataBindings |
如需此成員的描述,請參閱 DataBindings。 (繼承來源 Control) |
IDataBindingsAccessor.HasDataBindings |
如需此成員的描述,請參閱 HasDataBindings。 (繼承來源 Control) |
IExpressionsAccessor.Expressions |
如需此成員的描述,請參閱 Expressions。 (繼承來源 Control) |
IExpressionsAccessor.HasExpressions |
如需此成員的描述,請參閱 HasExpressions。 (繼承來源 Control) |
IParserAccessor.AddParsedSubObject(Object) |
如需此成員的描述,請參閱 AddParsedSubObject(Object)。 (繼承來源 Control) |
擴充方法
FindDataSourceControl(Control) |
傳回與指定控件之數據控件相關聯的數據源。 |
FindFieldTemplate(Control, String) |
傳回指定控件命名容器中指定數據行的欄位範本。 |
FindMetaTable(Control) |
傳回包含數據控制件的中繼資料表物件。 |
GetDefaultValues(INamingContainer) |
取得指定之數據控制項之預設值的集合。 |
GetMetaTable(INamingContainer) |
取得指定之數據控制件的數據表元數據。 |
SetMetaTable(INamingContainer, MetaTable, IDictionary<String,Object>) |
設定指定之數據控制元件的數據表元數據和預設值對應。 |
SetMetaTable(INamingContainer, MetaTable, Object) |
設定指定之數據控制元件的數據表元數據和預設值對應。 |
SetMetaTable(INamingContainer, MetaTable) |
設定指定之數據控制元件的數據表元數據。 |
TryGetMetaTable(INamingContainer, MetaTable) |
判斷數據表元數據是否可用。 |
EnableDynamicData(INamingContainer, Type, IDictionary<String,Object>) |
啟用指定數據控制件的動態數據行為。 |
EnableDynamicData(INamingContainer, Type, Object) |
啟用指定數據控制件的動態數據行為。 |
EnableDynamicData(INamingContainer, Type) |
啟用指定數據控制件的動態數據行為。 |