请输入您要查询的百科知识:

 

词条 LoginView
释义

ASP.NET 2.0揭秘 根据不同用户的认证状态,LoginView控件可以用于显示不同的内容。例如可以分别向登录用户和匿名用户显示不同的内容。

图1-16 通过LoginView控件为认证用户显示指定内容

LoginView控件包含了两个模板:AnonymousTemplate模板和LoggedInTemplate模板,在同一时刻只能显示其中一个。

代码清单1-39 ShowLoginView.aspx

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head id="Head1" runat="server">

<title>Show LoginView</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:LoginStatus

id="LoginStatus"

Runat="server" />

<hr />

<asp:LoginView

id="LoginView1"

Runat="server">

<AnonymousTemplate>

This content is displayed to anonymous users.

</AnonymousTemplate>

<LoggedInTemplate>

This content is displayed to authenticated users.

</LoggedInTemplate>

</asp:LoginView>

</div>

</form>

</body>

</html>

该页面中还包含了一个LoginStatus控件,使用它可以快速地登录和登出应用程序。

注解 LoginView控件在使用Windows认证时也能像使用Forms认证一样工作。

在LoginView控件中使用角色

对属于不同角色的不同用户,也可以通过使用LoginView控件来为其分别显示不同的内容。代码清单1-40中的页面包含了一个LoginView控件,该控件包含两个RoleGroup控件。第一个RoleGroup控件含有为管理员组(Administrator)成员显示的内容,第二个则包含为工作人员组(Worker)成员显示的内容。

代码清单1-40 LoginViewRoles.aspx

<%@ 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">

protected void Page_Load(object sender, EventArgs e)

{

MembershipCreateStatus status;

// Create Bill

Membership.CreateUser("Bill","secret_","bill@somewhere.com","dog","rover",true,out status);

// Create Ted

Membership.CreateUser("Ted", "secret_", "ted@somewhere.com", "dog", "rover", true,out status);

// Create Fred

Membership.CreateUser("Fred", "secret_", "fred@somewhere.com", "dog", "rover", true, out status);

// Create Administrator Role

if (!Roles.RoleExists("Administrator"))

{

Roles.CreateRole("Administrator");

Roles.AddUserToRole("Bill", "Administrator");

}

// Create Manager Role

if (!Roles.RoleExists("Manager"))

{

Roles.CreateRole("Manager");

Roles.AddUserToRole("Bill", "Manager");

Roles.AddUserToRole("Ted", "Manager");

}

// Create Worker Role

if (!Roles.RoleExists("Worker"))

{

Roles.CreateRole("Worker");

Roles.AddUserToRole("Fred", "Worker");

}

}

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head id="Head1" runat="server">

<title>LoginView Roles</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:LoginStatus

id="LoginStatus"

Runat="server" />

<hr />

<asp:LoginView

id="LoginView1"

Runat="server">

<RoleGroups>

<asp:RoleGroup Roles="Administrator">

<ContentTemplate>

This content is displayed to Administrators.

</ContentTemplate>

</asp:RoleGroup>

<asp:RoleGroup Roles="Manager,Worker">

<ContentTemplate>

This content is displayed to Managers

and Workers.

</ContentTemplate>

</asp:RoleGroup>

</RoleGroups>

</asp:LoginView>

</div>

</form>

</body>

</html>

代码清单1-40中的事件处理函数Page_Load()创建了名为Bill、Ted和Fred的三个用户。Bill加入了管理员和经理组(Manager),Ted加入了经理组,而Fred加入了工作人员组。

在同一时刻,LoginView控件只能显示一个RoleGroup所对应的内容。如果同一个用户属于多个RoleGroup,那么将显示第一个匹配的RoleGroup所对应的内容,而其他RoleGroup对应的内容将被忽略。

代码清单1-41 Web.Config

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<system.web>

<authentication mode="Forms" />

<roleManager enabled="true" />

</system.web>

</configuration>

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/12/16 22:23:31