ProfileBase.SetPropertyValue(String, Object) Método

Definición

Establece el valor de una propiedad de perfil.Sets the value of a profile property.

public:
 void SetPropertyValue(System::String ^ propertyName, System::Object ^ propertyValue);
public void SetPropertyValue (string propertyName, object propertyValue);
member this.SetPropertyValue : string * obj -> unit
Public Sub SetPropertyValue (propertyName As String, propertyValue As Object)

Parámetros

propertyName
String

Nombre de la propiedad que se va a establecer.The name of the property to set.

propertyValue
Object

Valor que se asigna a la propiedad.The value to assign to the property.

Excepciones

Se ha intentado establecer un valor de propiedad en un perfil anónimo donde el atributo allowAnonymous de la propiedad es false.An attempt was made to set a property value on an anonymous profile where the property's allowAnonymous attribute is false.

No hay ninguna propiedad definida para el perfil actual.There are no properties defined for the current profile.

o bien-or-

El nombre de propiedad de perfil especificado no existe en el perfil actual.The specified profile property name does not exist in the current profile.

o bien-or-

El proveedor de la propiedad de perfil determinada no ha reconocido la propiedad especificada.The provider for the specified profile property did not recognize the specified property.

Se intentó establecer un valor en una propiedad que estaba marcada como de solo lectura.An attempt was made to set a value on a property that was marked as read-only.

Se intentó asignar un valor a una propiedad utilizando un tipo incompatible.An attempt was made to assign a value to a property using an incompatible type.

Ejemplos

En el ejemplo de código siguiente se muestra una página ASP.NET que lee y establece la ZipCode propiedad especificada para el perfil de usuario.The following code example shows an ASP.NET page that reads and sets the ZipCode property specified for the user profile. Para obtener un ejemplo de un archivo Web.config que especifica las propiedades del perfil de usuario, vea el ejemplo proporcionado para la ProfileBase clase.For an example of a Web.config file that specifies properties for the user profile, see the example provided for the ProfileBase class.

Importante

Este ejemplo contiene un cuadro de texto que acepta datos proporcionados por el usuario, que es una posible amenaza de seguridad.This example contains a text box that accepts user input, which is a potential security threat. De forma predeterminada, ASP.NET Web Pages valida que los datos proporcionados por el usuario no incluyen elementos HTML ni de script.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Para más información, consulte Información general sobre los ataques mediante scripts.For more information, see Script Exploits Overview.

<%@ Page Language="C#" %>
<!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_PreRender()
{
  if (Profile.ZipCode == null)
  {
    PersonalizePanel.Visible = false;
    GetZipCodePanel.Visible = true;
  }
  else
  {
    ZipCodeLabel.Text = Profile.ZipCode;

    // Get personalized information for zip code here.

    PersonalizePanel.Visible = true;
    GetZipCodePanel.Visible = false;
  }
}

public void ChangeZipCode_OnClick(object sender, EventArgs args)
{
  ZipCodeTextBox.Text = Profile.ZipCode;
  Profile.ZipCode = null;

  PersonalizePanel.Visible = false;
  GetZipCodePanel.Visible = true;
}

public void EnterZipCode_OnClick(object sender, EventArgs args)
{
  Profile.ZipCode = ZipCodeTextBox.Text;
}

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

<form id="form1" runat="server">
  <table border="1" cellpadding="2" cellspacing="2">
    <tr>
      <td>
        <asp:Panel id="PersonalizePanel" runat="Server" Visible="False">
          Information for Zip Code: <asp:Label id="ZipCodeLabel" Runat="Server" /><br />
          <!-- Information for Zip Code here. -->
          <br />
          <asp:LinkButton id="ChangeZipCodeButton" Runat="Server" Text="Change Your Zip Code"
                          OnClick="ChangeZipCode_OnClick" />
        </asp:Panel>
        <asp:Panel id="GetZipCodePanel" runat="Server" Visible="False">
          You can personalize this page by entering your Zip Code: 
          <asp:TextBox id="ZipCodeTextBox" Columns="5" MaxLength="5" runat="Server" />
          <asp:LinkButton id="EnterZipCodeButton" Runat="Server" Text="Go"
                          OnClick="EnterZipCode_OnClick" />
        </asp:Panel>
      </td>
    </tr>
  </table>
</form>

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

Public Sub Page_PreRender()

  If Profile.ZipCode = Nothing Then
    PersonalizePanel.Visible = False
    GetZipCodePanel.Visible = True
  Else
    ZipCodeLabel.Text = Profile.ZipCode

    ' Get personalized information for zip code here.

    PersonalizePanel.Visible = True
    GetZipCodePanel.Visible = False
  End If

End Sub

Public Sub ChangeZipCode_OnClick(sender As Object, args As EventArgs)
  ZipCodeTextBox.Text = Profile.ZipCode
  Profile.ZipCode = Nothing

  PersonalizePanel.Visible = False
  GetZipCodePanel.Visible = True
End Sub

Public Sub EnterZipCode_OnClick(sender As Object, args As EventArgs)
  Profile.ZipCode = ZipCodeTextBox.Text
End Sub

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

<form id="form1" runat="server">
  <table border="1" cellpadding="2" cellspacing="2">
    <tr>
      <td>
        <asp:Panel id="PersonalizePanel" runat="Server" Visible="False">
          Information for Zip Code: <asp:Label id="ZipCodeLabel" Runat="Server" /><br />
          <!-- Information for Zip Code here. -->
          <br />
          <asp:LinkButton id="ChangeZipCodeButton" Runat="Server" Text="Change Your Zip Code"
                          OnClick="ChangeZipCode_OnClick" />
        </asp:Panel>
        <asp:Panel id="GetZipCodePanel" runat="Server" Visible="False">
          You can personalize this page by entering your Zip Code: 
          <asp:TextBox id="ZipCodeTextBox" Columns="5" MaxLength="5" runat="Server" />
          <asp:LinkButton id="EnterZipCodeButton" Runat="Server" Text="Go"
                          OnClick="EnterZipCode_OnClick" />
        </asp:Panel>
      </td>
    </tr>
  </table>
</form>

</body>
</html>

Comentarios

ASP.NET usa la ProfileBase clase para crear la clase utilizada para el perfil de usuario.ASP.NET uses the ProfileBase class to create the class used for the user profile. Cuando se inicia una aplicación que tiene el perfil de usuario habilitado, ASP.NET crea una nueva clase de tipo ProfileCommon , que hereda de la ProfileBase clase.When an application that has the user profile enabled is started, ASP.NET creates a new class of type ProfileCommon, which inherits from the ProfileBase class. Los descriptores de acceso fuertemente tipados se agregan a la ProfileCommon clase para cada propiedad definida en la sección de configuración del perfil .Strongly typed accessors are added to the ProfileCommon class for each property defined in the profile configuration section. Los descriptores de acceso fuertemente tipados de la ProfileCommon clase llaman al SetPropertyValue método para pasar valores de propiedad al ProfileProvider que se va a almacenar en el origen de datos.The strongly typed accessors of the ProfileCommon class call the SetPropertyValue method to pass property values to the ProfileProvider to be stored at the data source.

Puede usar el SetPropertyValue método para asignar valores de propiedad en el perfil de usuario de la aplicación por nombre.You can use the SetPropertyValue method to assign property values in the user profile for your application by name. Los valores son sin tipo y la comprobación de tipos se realizará en tiempo de ejecución, no en tiempo de compilación.Values are untyped, and type checking will be done at run time, not compile time. Para el acceso fuertemente tipado a los valores de propiedad de perfil, puede tener acceso a la propiedad por nombre como miembro de la Profile propiedad que está disponible en cada página, por ejemplo, Profile.CustomerAddress .For strongly typed access to profile property values, you can access the property by name as a member of the Profile property that is available on each page, for example, Profile.CustomerAddress.

Se aplica a