Export (0) Print
Expand All

ProfileBase.Properties Property

Gets a collection of SettingsProperty objects for each property in the profile.

Namespace:  System.Web.Profile
Assembly:  System.Web (in System.Web.dll)

public static SettingsPropertyCollection Properties { get; }

Property Value

Type: System.Configuration.SettingsPropertyCollection
A SettingsPropertyCollection of SettingsProperty objects for each property in the profile for the application.

ExceptionCondition
System.Configuration.ConfigurationErrorsException

A property type specified in the profile section of the Web.config file could not be created.

-or-

The allowAnonymous attribute for a property in the profile section of the Web.config file is set to true and the enabled attribute of the anonymousIdentification element is set to false.

-or-

The serializeAs attribute for a property in the profile section of the Web.config file is set to Binary and the IsSerializable property of the specified type returns false.

-or-

The name of a provider specified using the provider attribute of a profile property could not be found in the Providers collection.

-or-

The type specified for a profile property could not be found.

-or-

A profile property was specified with a name that matches a property name on the base class specified in the inherits attribute of the profile section.

You can use this property to get information about the profile properties configured for an application, including property names and types. You can also reference the ProfileProvider of each property. A ProfileProvider manages storage and retrieval of property values to and from the data source.

The following code example lists the names of the properties in the user profile by binding the Name property from the static Properties collection of SettingsProperty objects to a GridView control. The selected property value is retrieved by name using the Item collection. For an example of a Web.config file that specifies properties for the user profile, see the example provided for the ProfileBase class.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Profile" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Page_Load()
{
  if (!IsPostBack)
  {
    PropertiesListBox.DataSource = ProfileBase.Properties;
    PropertiesListBox.DataBind();
  }

  if (PropertiesListBox.SelectedItem != null)
  {
    object propValue = Profile[PropertiesListBox.SelectedItem.Text];

    Type propType = propValue.GetType();

    // If the property is a value type, return ToString().

    if (propType == typeof(string) || propType.IsValueType)
    {
      ValueLabel.Visible = true;
      ValueGridView.Visible = false;
      ValueLabel.Text = propValue.ToString();
      return;
    }


    // Bind the property to a GridView.

    try
    {
      ValueGridView.DataSource = propValue;
      ValueGridView.DataBind();
      ValueGridView.Visible = true;
      ValueLabel.Visible = false; 
    }
    catch
    {
      // If the property is not bindable, return ToString().

      ValueLabel.Visible = true;
      ValueGridView.Visible = false;
      ValueLabel.Text = propValue.ToString();
    }
  }
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<h3>View Profile properties:</h3>

<form id="form1" runat="server">
  <table border="0" cellpadding="2" cellspacing="2">
    <tr>
      <td>Property</td>
      <td>Value</td>
    </tr>
    <tr>
      <td valign="top">
        <asp:ListBox runat="server" id="PropertiesListBox" Rows="10" AutoPostBack="True" DataTextField="Name" />
      </td>
      <td valign="top">
        <asp:GridView runat="Server" id="ValueGridView" Visible="False" />
        <asp:Label runat="Server" id="ValueLabel" Visible="False" />
      </td>
    </tr>
  </table>
</form>

</body>
</html>

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0
Show:
© 2015 Microsoft