1. web.config:
Use Forms authentication. Site counter is enabled through the following element:
<siteCounters enabled="true">
<pageCounters enabled="true" rowsPerDay="1" trackApplicationName="true" trackPageUrl="true" counterGroup="PageCounters" counterName="">
<pagesToCount>
<add path="*"/>
</pagesToCount>
</pageCounters>
</siteCounters>
2. sitetemplate.master:
Style is embedded under the <head> tag that runs at server. (There are two <head> elements in the file. Why?) Web Admin site uses a separate style sheet. It has to use Request.ApplicationPath to link to the style sheet.
There is a also an invisible sitemapdatasource control under the head.
<asp:sitemapdatasource id="SiteMapSource" runat="server"></asp:sitemapdatasource>
There is a loginview control which is a templated control. There is a loggedintemplate and a anonymoustemplate. We can even has one template per row under the rolegroups element. Inside the template, some other controls, such as loginstatus and loginname, are used.
There is a sitemappath control that could automatically bind to the sitemapdatasource control.
There is a treeview that is explicitly bound to the sitemapdatasource control.
3. Photo Album: The photoalbums.aspx page uses datalist control bind to a accessdatasource control.
The phtoalbum.aspx page use two accessdatasource controls, one bind to a detailview control and one bind to a datalist control.
The pictureDetails.aspx page use a detailview control. The control contains a single itemtemplate.