System.Web.UI


Control (Clase)
Define las propiedades, métodos y eventos que comparten todos los controles de servidor ASP.NET.

Espacio de nombres: System.Web.UI
Ensamblado: System.Web (en system.web.dll)

Sintaxis

Visual Basic (Declaración)
<BindableAttribute(True)> _
<ThemeableAttribute(False)> _
Public Class Control
    Implements IComponent, IDisposable, IParserAccessor, IUrlResolutionService, _
    IDataBindingsAccessor, IControlBuilderAccessor, IControlDesignerAccessor, IExpressionsAccessor
Visual Basic (Uso)
Dim instance As Control
C#
[BindableAttribute(true)] 
[ThemeableAttribute(false)] 
public class Control : IComponent, IDisposable, IParserAccessor, 
    IUrlResolutionService, IDataBindingsAccessor, IControlBuilderAccessor, IControlDesignerAccessor, IExpressionsAccessor
C++
[BindableAttribute(true)] 
[ThemeableAttribute(false)] 
public ref class Control : IComponent, IDisposable, IParserAccessor, 
    IUrlResolutionService, IDataBindingsAccessor, IControlBuilderAccessor, IControlDesignerAccessor, IExpressionsAccessor
J#
/** @attribute BindableAttribute(true) */ 
/** @attribute ThemeableAttribute(false) */ 
public class Control implements IComponent, IDisposable, 
    IParserAccessor, IUrlResolutionService, IDataBindingsAccessor, IControlBuilderAccessor, IControlDesignerAccessor, 
    IExpressionsAccessor
JScript
BindableAttribute(true) 
ThemeableAttribute(false) 
public class Control implements IComponent, IDisposable, 
    IParserAccessor, IUrlResolutionService, IDataBindingsAccessor, IControlBuilderAccessor, IControlDesignerAccessor, 
    IExpressionsAccessor
XAML
No aplicable.
Comentarios

Ésta es la clase principal de la que debe derivarse cuando se desarrollan controles de servidor ASP.NET personalizados. Control no tiene características específicas de interfaz de usuario. Si va a crear un control que no tiene una interfaz de usuario o que combina otros controles que generan sus propias interfaces de usuario, derive de Control. Si va a crear un control que no tiene una interfaz de usuario, derive de WebControl o del cualquier control del espacio de nombres System.Web.UI.WebControls que proporcione un punto inicial adecuado para el control personalizado.

La clase Control es la clase base para todos los controles de servidor ASP.NET, incluidos los controles personalizados, los controles de usuario y las páginas. Las páginas ASP.NET son instancias de la clase Page, que se hereda de la clase Control y controla las solicitudes de archivos con la extensión .aspx.

La clase Control se puede utilizar directa o indirectamente como parte de la interfaz de usuario para la aplicación Web, y como tal se debe estudiar para asegurar que se siguen las recomendaciones para escribir código seguro y proteger las aplicaciones. Para obtener información general sobre estos temas, vea Información general sobre las amenazas para la seguridad de las aplicaciones Web, Procedimientos recomendados para directivas de seguridad y Conceptos clave de seguridad. Para obtener información más concreta, vea Seguridad de controles estándar, Cómo: Mostrar mensajes de error seguros, Cómo: Proteger una aplicación Web frente a ataques mediante secuencias de comandos aplicando codificación HTML a las cadenas y Introducción a los controles de validación.

TopicLocation
Cómo: Buscar controles de formularios Web Forms en una página recorriendo la colección ControlsGenerar aplicaciones Web ASP .NET
Cómo: Buscar controles de formularios Web Forms en una página recorriendo la colección ControlsGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Localizar controles secundarios por id. en una página Web ASP.NETGenerar aplicaciones Web ASP .NET
Cómo: Localizar controles secundarios por id. en una página Web ASP.NETGenerar aplicaciones Web ASP .NET en Visual Studio
Desarrollar controles enlazados a datos personalizados para ASP.NET 1.1Crear controles ASP.NET
Desarrollar controles enlazados a datos personalizados para ASP.NET 1.1Generar aplicaciones Web ASP .NET en Visual Studio
Desarrollar controles enlazados a datos personalizados para ASP.NET 2.0Crear controles ASP.NET
Desarrollar controles enlazados a datos personalizados para ASP.NET 2.0 y posteriorGenerar aplicaciones Web ASP .NET en Visual Studio
Tutorial: Crear controles Web ASP.NET enlazados a datos personalizados para ASP.NET 1.1Crear controles ASP.NET
Tutorial: Crear controles Web ASP.NET enlazados a datos personalizados para ASP.NET 1.1Generar aplicaciones Web ASP .NET en Visual Studio
Tutorial: Crear controles Web ASP.NET enlazados a datos personalizados para ASP.NET 2.0Crear controles ASP.NET
Tutorial: Crear controles Web ASP.NET enlazados a datos personalizados para ASP.NET 2.0Generar aplicaciones Web ASP .NET en Visual Studio
Tutorial: Desarrollar y utilizar un control de servidor personalizadoCrear controles ASP.NET
Tutorial: Desarrollar y utilizar un control de servidor personalizadoGenerar aplicaciones con Visual Web Developer
Ejemplo

En el siguiente ejemplo se muestra un control de servidor personalizado que se deriva de la clase Control. La clase InnerContent reemplaza al método Control.Render, comprueba si la clase tiene controles secundarios en la página y determina si el primer secundario del control es un control literal. Si se cumplen ambas condiciones, el método reemplazado escribe la cadena HTML <H2>Mensaje:, el contenido del control literal y la etiqueta </H2> de cierre en la página de formularios Web Forms.

Nota de seguridadNota: de seguridad

Este ejemplo tiene un cuadro de texto que acepta datos del usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, las páginas Web ASP.NET validan que los datos proporcionados por el usuario no incluyen elementos HTML ni de secuencia de comandos. Para obtener más información, vea Información general sobre los ataques mediante secuencias de comandos.

Visual Basic
Option Explicit
Option Strict

Imports System
Imports System.Web
Imports System.Web.UI
Imports Microsoft.VisualBasic

Namespace SimpleControlSamples
    Public Class InnerContent
        Inherits Control
        <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="Execution")> _
        Protected Overrides Sub Render(output As HtmlTextWriter)
            
            If HasControls() And TypeOf Controls(0) Is LiteralControl Then
                output.Write("<H2>Your message : ")
                Controls(0).RenderControl(output)
                output.Write("</H2>")
            End If
        End Sub 'Render
    End Class 'InnerContent
End Namespace 'SimpleControlSamples
C#
using System;
using System.Web;
using System.Web.UI;

namespace SimpleControlSamples {

    public class InnerContent : Control {
    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="Execution")] 
       protected override void Render(HtmlTextWriter output) {

           if ( (HasControls()) && (Controls[0] is LiteralControl) ) {
               output.Write("<H2>Your message : ");
               Controls[0].RenderControl(output);
               output.Write("</H2>");
           }
       }
    }    
}
   
J#
package SimpleControlSamples; 

import System.*;
import System.Web.*;
import System.Web.UI.*; 
   
public class InnerContent extends Control
{
    /** @attribute System.Security.Permissions.PermissionSet(
        System.Security.Permissions.SecurityAction.Demand, Name = "Execution")
     */
    protected void Render(HtmlTextWriter output)
    {
        if (HasControls() && 
            get_Controls().get_Item(0) instanceof LiteralControl) {
            output.Write("<H2>Your message: ");
            get_Controls().get_Item(0).RenderControl(output);
            output.Write("</H2>");
        }
    } //Render
} //InnerContent
JScript
import System;
import System.Web;
import System.Web.UI;
import System.Security.Permissions;

package SimpleControlSamples {

    public class InnerContent extends Control {

       protected override function Render(output : HtmlTextWriter) {
    var securityperm : SecurityPermission;
         securityperm = new SecurityPermission(SecurityPermissionFlag.SerializationFormatter);
         securityperm.Demand();
           if ( (HasControls()) && (typeof(Controls[0]) == LiteralControl) ) {
              output.Write("<H2>Your Message: " + (LiteralControl(Controls[0])).Text + "</H2>");
           }
       }
    }    
}
Seguridad de .NET Framework

  • AspNetHostingPermission  para su funcionamiento en un entorno alojado en host. Valor de petición: LinkDemand; valor de permiso: Minimal.
  • AspNetHostingPermission  para su funcionamiento en un entorno alojado en host. Valor de petición: InheritanceDemand; valor de permiso: Minimal.
Jerarquía de herencia

System.Object
  System.Web.UI.Control
     Clases derivadas
Seguridad para subprocesos

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Plataformas

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

Información de versión

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0
Vea también

Page view tracker