| 词条 | 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。