LoginView控件

1.功能

LoginView 控件根据用户是否经过身份验证以及他(或她)属于哪个网站角色(如果用户经过身份验证),为不同的用户显示不同的网站内容模板(或者说“视图”)。

存储在 AnonymousTemplate属性中的模板向所有未在网站中登录的访问者显示。用户登录后,网站或者显示与 RoleGroups属性中该用户的某个角色相关联的模板,或者显示 LoggedInTemplate属性中指定的默认模板。

为LoginView类的以下三个模板属性中的任何一个属性分配了模板后,LoginView 控件将管理不同模板之间的切换:

●  AnonymousTemplate 指定向未登录到网站的用户显示的模板。登录用户永远看不到此模板。

●  LoggedInTemplate 指定向登录到网站,但不属于任何具有已定义模板的角色组的用户显示的默认模板。

●  RoleGroups 指定向已登录且是具有已定义角色组模板的角色的成员显示的模板。内容模板与 RoleGroup实例中的特定角色集相关联。

描述 LoginView 控件在使用各种模板组合时的行为,如表1所示。

                       表1  LoginView 控件在使用各种模板组合时的行为

LoggedIn Template 属性

Anonymous Template 属性

RoleGroups 属性

LoginView 行为

未设置

未设置

未设置

不显示任何内容

已设置

未设置

未设置

仅当用户登录后才显示内容

未设置

已设置

未设置

仅当用户尚未登录时显示内容

未设置

未设置

已设置

显示 RoleGroups 集合中第一个与用户某个角色相匹配的模板。如果未找到匹配模板,则不显示内容

已设置

已设置

未设置

如果用户已登录,则显示 LoggedInTemplate 属性中指定的模板。如果用户尚未登录,则显示 AnonymousTemplate 属性中指定的模板

已设置

已设置

已设置

如果用户已登录,则显示 RoleGroups 集合中第一个与用户某个角色相匹配的模板。如果未找到匹配模板,则显示 LoggedInTemplate 属性中指定的模板。如果用户尚未登录,则显示 AnonymousTemplate 属性中指定的模板

已设置

未设置

已设置

如果用户已登录,则显示 RoleGroups 集合中第一个与用户某个角色相匹配的模板。如果未找到匹配模板,则显示 LoggedInTemplate 属性中指定的模板。如果用户尚未登录,则不显示任何内容

未设置

已设置

已设置

如果用户已登录,则显示 RoleGroups 集合中第一个与用户某个角色相匹配的模板。如果未找到匹配模板,则不显示任何内容。如果用户尚未登录,则显示 AnonymousTemplate 属性中指定的模板

2.属性

LoginView 控件常用属性及说明,如表2所示。

                                         表2  LoginView 控件常用属性及说明

属性

说明

AnonymousTemplate

获取或设置向未登录到网站的用户显示的模板

EnableTheming

获取或设置一个值,该值指示是否能对 LoginView 控件应用主题

LoggedInTemplate

获取或设置向已登录网站但不属于 RoleGroups属性中指定的任何角色组的网站用户显示的模板

NamingContainer

获取对服务器控件的命名容器的引用,此引用创建唯一的命名空间,以区分具有相同 Control.ID 属性值的服务器控件

TemplateControl

获取或设置对包含该控件的模板的引用

TemplateSourceDirectory 

获取包含当前服务器控件的 Page 或 UserControl 的虚拟目录

RoleGroups

获取将内容模板与特定角色相关联的角色组集合

下面对比较重要的属性进行详细介绍。

(1)AnonymousTemplate属性

此属性获取或设置向未登录到网站的用户显示的模板

语法:

public virtual ITemplate AnonymousTemplate { get; set; }

属性值:

要显示的ITemplate。

    说明:AnonymousTemplate 模板永远不会向通过身份验证的用户显示。如果AnonymousTemplate 属性为空,则不向未登录用户显示任何内容。

(2)LoggedInTemplate属性

此属性获取或设置向已登录网站,但不属于 oleGroups属性中指定的任何角色组的网站用户显示的模板。

语法:

public virtual ITemplate LoggedInTemplate { get; set; }

属性值:

要显示的ITemplate。

    说明:在以下两个条件均得到满足时,将向网站用户显示LoggedInTemplate 属性:

1.Page User 属性的Name 属性不为空引用;用户不属于 RoleGroups 属性中定义的角色组。

2.LoggedInTemplate指定向通过身份验证的网站用户显示的默认模板。如果尚未配置角色管理,则LoggedInTemplate 是惟一可为通过身份验证的用户使用的模板。

(3)RoleGroups属性

此属性获取将内容模板与特定角色相关联的角色组集合。

语法:

public virtual RoleGroupCollection RoleGroups { get; }

属性值:

一个包含已定义角色组模板的 RoleGroupCollection对象。

本例使用LoginView 控件实现登录用户和匿名用户显示不同的内容。示例运行,如果用户没有登录,则给出提示。单击链接进入登录页面,输入用户名“soAsp.net”,密码“111”登录网站。

LoginName控件与Login控件设计码如下。

<asp:LoginView ID="LoginView1" Runat="server">
  <LoggedInTemplate>
   <asp:LoginName ID="LoginName1" Runat="server" 
                  FormatString =" {0}:欢迎登录本站" Width="218px" />
      &nbsp;<br />
      <asp:LoginStatus ID="LoginStatus1" runat="server" Width="38px" />
  </LoggedInTemplate>
  <AnonymousTemplate>
      <asp:HyperLink ID="HyperLink1" runat="server" Height="35px" NavigateUrl="~/Login.aspx"
          Width="254px">请您登录本网站,登录</asp:HyperLink>
  </AnonymousTemplate>
</asp:LoginView>

3.事件

LoginView控件常用事件及说明,如表3所示。

                                 表3  LoginView控件常用事件及说明

事件

说明

Init

当服务器控件初始化时发生;初始化是控件生存期的第一步

Load

当服务器控件加载到Page对象中时发生

ViewChanged

在视图更改后发生

ViewChanging

在视图更改前发生

下面对比较重要的事件进行详细介绍。

(1) ViewChanged事件

此事件在视图更改后发生。

语法:

public event EventHandler ViewChanged

说明:当LoginView控件在视图之间进行切换时,它将移除来自先前模板的控件,并使用新模板创建新的子控件。ViewChanged 事件在新的子控件创建之后引发。使用 ViewChanged 事件执行在新视图中初始化控件所必需的任何处理(如数据绑定)。

(2)ViewChanging

此事件在视图更改前发生。

语法:

public event EventHandler ViewChanging

4.典型实例

本例实现登录控件的综合应用,使用LoginStatus控件判断成员资格用户是否经过了身份验证。运行实例“Default.aspx”页,此时成员资格用户还没有通过验证,所以会给出提示“你还没有登录本站,点击此处登录网站!”的链接,点击此链接进入登录页面。主要代码如下。

<asp:LoginView ID="LoginView1" runat="server">
            <AnonymousTemplate>
                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Login.aspx" Width="359px">你还没有登录本站,点击此处登录网站!</asp:HyperLink>
            </AnonymousTemplate> 
 </asp:LoginView>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值