站点个性化以反映当前登录用户的偏好是实现社区化和归属感的一种好方法。虽然本章不会进行很多个性化处理,但在下一章本书将讨论一些ASP.NET开发人员提供的功能,这些功能可以为用户提供更加个性化的用户界面和浏览体验。
对于任何个性化的站点,一个有用的附加功能是向已登录的用户通过某种类型的反馈信息,告诉用户站点已经正确地确认了他们的身份。LoginName控件是添加这种功能的简单方法。在下面的“试一试”练习中,您将了解到如何使用这个控件。在这个示例中,需要授权匿名用户访问站点。
试一试:显示用户特定的信息 (1) 可以选择任何一种喜欢的方式为匿名用户授权—— 要么编辑Web.config文件(参考前面的“操作回顾”),要么启动Web Site Administration Tool。要再次启动这个工具,可以在系统托盘中右击管理站点图标并选择Open in Web Browser。或者,如果选中修改Web.config文件,只需在VWD中打开该文件并修改代码中的灰色部分:
<authorization >
<allow users="?" / >
<allow users="administrator" / >
<allow users="chrishart" / >
</authorization >
问号表示所有匿名用户,因此通过将deny改为allow,启用匿名访问。
(2) 接下来需要对网页代码进行少量的修改以便添加LoginName控件。打开Default.aspx页面并弹出LoginView控件的Common Task菜单(单击该控件右上方的小箭头并选择LoggedInTemplate,如图4-19所示)。将文本修改为You are logged in as,然后将一个LoginName控件拖放到文本的结尾处。
图 4-19
(3) 在将LoginName控件添加到页面之后不需要对其进行任何修改,所以现在就可以保存修改并运行页面了。首先看到的是一个匿名用户访问站点时的页面,如图4-20所示。
图 4-20
现在单击Login链接并登录站点。登录成功之后,应该可以看到类似图4-21所示的页面,具体内容与登录所使用的用户账户有关。
图 4-21
操作回顾使用LoginName控件在页面上显示当前登录用户的身份是一种快捷简单的方法。如果切换到该页面的Source View,就可以看到LoginName控件,如下代码所示:
<LoggedInTemplate >
You are logged in as
<asp:LoginName ID="LoginName1" runat="server" / >
<br / >
</LoggedInTemplate >
在作者的代码中增加了一些HTML代码;因为我在LoginName控件之后按下了Return(以便LoginStatus控件能显示在下一行),在代码中出现了一个<br / >HTML标记。这是一个简单的HTML换行代码。在从Design View切换到Source View之后,开发人员经常可以看到类似的标记添加到代码中。最常见的两个符号是 和<br / >; 是一个不可中断的空格(这个空格将和紧靠在它前面和后面的内容显示在同一行上),而<br / >是一个简单的换行符。这个示例的重点不是HTML代码,而是LoginName控件的源代码。同样,在产生的代码中也没有任何让人兴奋的内容,因为ASP.NET在幕后完成了寻找当前登录用户名称的重任,并在服务器呈现页面的时候将其插入到页面中。
注意并没有将LoginName控件添加到Anonymous模板中,其实也没有理由要这样做—— 如果作为匿名用户访问站点,该控件不会显示任何信息。
到现在为止您已经花了一定的时间试验用户账户和站点登录。在本章的前面,我们已经讨论过角色的概念。下一小节将介绍角色是什么以及怎样使用角色细化站点成员的特征。