Preferred Language:
Listing 28.26 - EncryptConfig.aspx
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Configuration" %>
<%@ Import Namespace="System.Collections.Generic" %>
<!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()
{
if (!Page.IsPostBack)
BindSections();
}
protected void grdSections_RowCommand(object sender, GridViewCommandEventArgs e)
{
int rowIndex = Int32.Parse((string)e.CommandArgument);
string sectionName = (string)grdSections.DataKeys[rowIndex].Value;
if (e.CommandName == "Protect")
ProtectSection(sectionName);
if (e.CommandName == "UnProtect")
UnProtectSection(sectionName);
BindSections();
}
private void ProtectSection(string sectionName)
{
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection(sectionName);
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
config.Save(ConfigurationSaveMode.Modified);
}
private void UnProtectSection(string sectionName)
{
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection(sectionName);
section.SectionInformation.UnprotectSection();
config.Save(ConfigurationSaveMode.Modified);
}
private void BindSections()
{
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
List<SectionInformation> colSections = new List<SectionInformation>();
foreach (ConfigurationSection section in config.SectionGroups["system.web"].Sections)
colSections.Add(section.SectionInformation);
grdSections.DataSource = colSections;
grdSections.DataBind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Encrypt Config</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView
id="grdSections"
DataKeyNames="SectionName"
AutoGenerateColumns="false"
OnRowCommand="grdSections_RowCommand"
Runat="server" >
<Columns>
<asp:ButtonField ButtonType="Link" Text="Protect" CommandName="Protect" />
<asp:ButtonField ButtonType="Link" Text="UnProtect" CommandName="UnProtect" />
<asp:CheckBoxField DataField="IsProtected" HeaderText="Protected" />
<asp:BoundField DataField="SectionName" HeaderText="Section" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
Need ASP.NET and Visual Studio 2008 Training?
- Learn ASP.NET 3.5 from Stephen Walther, author of ASP.NET 3.5 Unleashed.
We've provided ASP.NET training for NASA, Lockheed Martin, the National Science Foundation, Verizon,
Boeing, the US House of Representatives, Kaiser, Petco, Mary Kay, and Microsoft.
Why not your company?
-
Receive a four day, hands-on, intensive workshop.
-
We fly to you, anywhere in the world.
-
We can bring our own laptops.
To learn more, visit the
Superexpert Training website.