File: App_Code\AdminUsersSection.cs
using System;
using System.Configuration;
namespace MyNamespace
{
public class AdminUsersSection : ConfigurationSection
{
[ConfigurationProperty("", IsDefaultCollection = true)]
public AdminUsersCollection Users
{
get { return (AdminUsersCollection)this[""]; }
}
}
public class AdminUsersCollection : ConfigurationElementCollection
{
protected override ConfigurationElement CreateNewElement()
{
return new AdminUser();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((AdminUser)element).Name;
}
public AdminUsersCollection()
{
this.AddElementName = "user";
}
}
public class AdminUser : ConfigurationElement
{
[ConfigurationProperty("name", IsRequired = true, IsKey = true)]
public string Name
{
get { return (string)this["name"]; }
set { this["name"] = value; }
}
[ConfigurationProperty("password", IsRequired = true)]
public string Password
{
get { return (string)this["password"]; }
set { this["password"] = value; }
}
}
}
File: Web.config
<configuration>
<configSections>
<sectionGroup name="system.web">
<section
name="adminUsers"
type="MyNamespace.AdminUsersSection"
allowLocation="true"
allowDefinition="Everywhere" />
</sectionGroup>
</configSections>
<system.web>
<adminUsers>
<user name="Bob" password="secret" />
<user name="Fred" password="secret" />
</adminUsers>
</system.web>
</configuration>
Displaying the contents of the adminUsers section in a BulletedList control.
<%@ Page Language="C#" %>
<%@ Import Namespace="MyNamespace" %>
<%@ Import Namespace="System.Web.Configuration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load()
{
AdminUsersSection section = (AdminUsersSection)WebConfigurationManager.GetWebApplicationSection("system.web/adminUsers");
bltAdminUsers.DataSource = section.Users;
bltAdminUsers.DataBind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Show AdminUsersSection</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Administrators</h1>
<asp:BulletedList
id="bltAdminUsers"
DataTextField="Name"
Runat="server" />
</div>
</form>
</body>
</html>
|