INFORMACIÓN: Introducción A la seguridad ASP.NET

Seleccione idioma Seleccione idioma
Id. de artículo: 306590 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E306590
En este artículo se refiere a la siguiente .net de Microsoft Espacios de nombres de biblioteca de clases de Framework:
  • System.Web.Security
  • System.Web.principal
Expandir todo | Contraer todo

En esta página

Resumen

Este artículo proporciona una introducción a ASP.NET seguridad.

Para obtener información general adicional ASP.NET, consulte el siguiente Artículo de Microsoft Knowledge Base:
305140 INFORMACIÓN: Guía básica de ASP.NET

Más información

ASP.NET proporciona un mayor control para implementar la seguridad la aplicación. Seguridad ASP.NET funciona junto con Microsoft Internet Information Services Seguridad (IIS) e incluye servicios de autenticación y autorización a implementar el modelo de seguridad ASP.NET. ASP.NET también incluye una función característica de seguridad que se puede implementar para Microsoft Windows y cuentas de usuario que no sean Windows.

En este artículo se divide en los siguientes secciones:

Flujo de seguridad con una solicitud

Los pasos siguientes describen la secuencia de eventos cuando un cliente realiza una solicitud:
  1. Un cliente solicita una página .aspx que reside en un IIS servidor.
  2. Las credenciales del cliente se pasan a IIS.
  3. IIS autentica al cliente y envía el autenticado símbolo (token) junto con la solicitud del cliente al proceso de trabajo ASP.NET.
  4. Basándose en el símbolo autenticado de IIS y el ASP.NET de valores de configuración de la aplicación Web, decida si desea suplantar a un usuario en el subproceso que está procesando la solicitud. En un distinto diferencia entre páginas Active Server de Microsoft (ASP) y ASP.NET, ASP.NET no ya representa al usuario autenticado de forma predeterminada. Para permitir la suplantación, debe establecer el atributo impersonate de la sección de identidad en el archivo Web.config en true.
Para obtener más información acerca del flujo de seguridad, consulte el tema siguiente en el Kit de desarrollo de Software (SDK) de.NET Framework documentación:
Flujo de datos de ASP.NET
http://msdn.Microsoft.com/en-us/library/xa68twcb (vs.71) .aspx
Para obtener información adicional acerca de utiliza la suplantación en ASP.NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
306158 INFO: Implementar la representación en una aplicación de ASP.NET

Valores de configuración relacionados

IIS mantiene valores de configuración relacionados con la seguridad en IIS metabase. Sin embargo, se mantiene ASP.NET seguridad (y otros) configuración configuración en archivos de configuración de lenguaje de marcado Extensible (XML). Aunque esto Generalmente, se simplifica la implementación de la aplicación de una garantía el modelo de seguridad que adopta la aplicación necesita a punto de vista, el configuración correcta de la metabase IIS y la aplicación de ASP.NET a través de su archivo de configuración (Web.config).

El siguiente las secciones de configuración relacionadas con la seguridad ASP.NET:

Autenticación

Autenticación es el proceso mediante el cual obtener identificación credenciales como nombre y la contraseña del usuario y validar las credenciales con alguna autoridad.

ASP.NET proporciona autenticación cuatro proveedores:

Autenticación mediante formularios

Autenticación mediante formularios hace referencia a un sistema en que no autenticado las solicitudes se redirigen a un formulario de lenguaje de marcado de hipertexto (HTML) en el que los usuarios escribir sus credenciales. Después de que el usuario proporciona las credenciales y envía el formulario, la aplicación autentica la solicitud y los problemas del sistema un vale de autorización en forma de una cookie. Este cookie contiene el credenciales o una clave para volver a adquirir la identidad. Las solicitudes siguientes de la explorador incluyen automáticamente la cookie.

Para obtener más información acerca de Autenticación mediante formularios, consulte el tema siguiente en el SDK de.NET Framework documentación:
El proveedor de autenticación de formularios
http://msdn.Microsoft.com/en-us/library/907hb5w9 (vs.71) .aspx
Para autenticación de formularios de información adicional en ASP.NET, haga clic en el artículo número siguiente para verlo en Microsoft Knowledge Base:
301240 Cómo: Implementar basada en formularios de autenticación en la aplicación de ASP.NET utilizar C#.

Autenticación de Windows

En la autenticación de Windows, IIS realiza la autenticación, y el símbolo autenticado se envía al proceso de trabajo ASP.NET. La ventaja de utilizar Windows la autenticación es que requiere una codificación mínima. Desea utilizar Windows autenticación para suplantar la cuenta de usuario de Windows que IIS autentica antes de entregar la solicitud a ASP.NET.

Para obtener más información acerca de la autenticación de Windows, consulte el tema siguiente en el .net Documentación del SDK:
El proveedor WindowsAuthenticationModule
http://msdn.Microsoft.com/en-us/library/907hb5w9 (vs.71) .aspx

Autenticación de Passport

Autenticación de Passport es un servicio de autenticación centralizado, que proporciona Microsoft, que ofrece servicios de perfil de un inicio de sesión único y principal sitios Web suscritos. Normalmente, se utiliza la autenticación de Passport cuando necesite capacidad en múltiples dominios de inicio de sesión único.

Para obtener más información información sobre la autenticación de Passport, consulte el tema siguiente en el Documentación del SDK de.NET Framework:
El proveedor de autenticación de Passport
http://msdn.Microsoft.com/en-us/library/f8e50t0f (vs.71) .aspx

Autenticación predeterminada

Autenticación predeterminada se utiliza cuando no desea ninguna seguridad en la aplicación Web; se requiere acceso anónimo para esta seguridad proveedor. Entre todos los proveedores de autenticación proporciona autenticación predeterminada máximo rendimiento de la aplicación. También es de este proveedor de autenticación se utiliza cuando se utiliza su propio módulo de seguridad personalizado.

Autorización

La autorización es el proceso que comprueba si el autenticado usuario tiene acceso a los recursos solicitados.

ASP.NET ofrece la proveedores de autorización siguientes:

FileAuthorization

La clase FileAuthorizationModule realiza autorización de archivos y está activa cuando se utiliza Autenticación de Windows. FileAuthorizationModule es responsable de realizar comprobaciones de Control de acceso de Windows Listas (ACL) para determinar si un usuario debe tener acceso.

UrlAuthorization

La clase UrlAuthorizationModule realiza la autorización del localizador de recursos uniforme (URL), que controla la autorización basada en el espacio de nombres URI. Espacios de nombres URI pueden ser bastante diferentes de las rutas de acceso físicas de archivos y carpetas que los permisos de NTFS Utilice.

UrlAuthorizationModule implementa aserciones de autorización positivas y negativas; es decir, puede usar el módulo para permitir o denegar el acceso a forma selectiva partes arbitrarias del espacio de nombres URI para los usuarios, funciones (por ejemplo, el administrador, evaluadores y administradores) y verbos (como GET y POST).

Para obtener más información acerca de la autorización en ASP.NET, consulte el tema siguiente en la documentación del SDK de.NET Framework:
Autorización de ASP.NET
http://msdn.Microsoft.com/en-us/library/wce3kxhd (vs.71) .aspx

Seguridad basada en funciones

Seguridad basada en ASP.NET es similar a la basada en funciones seguridad que utilizan Microsoft COM + y Microsoft Transaction Server (MTS), Aunque hay diferencias importantes. Seguridad basada en funciones en ASP.NET no es limitado a los grupos y cuentas de Windows. Por ejemplo, si la autenticación de Windows y se habilita la suplantación, la identidad del usuario es una identidad de Windows (User.Identity.Name = "Dominio\nombreDeUsuario"). Puede comprobar las identidades para la pertenencia a funciones específicas y restringir el acceso según corresponda. Para ejemplo:

Código de Visual Basic.
If User.IsInRole("BUILTIN\Administrators") Then
   Response.Write("You are an Admin")
Else If User.IsInRole("BUILTIN\Users") then
   Response.Write("You are a User")
Else
   Response.Write("Invalid user")
End if
				
Código de Visual C#.
if ( User.IsInRole("BUILTIN\\Administrators"))
   Response.Write("You are an Admin");
else if (User.IsInRole("BUILTIN\\Users"))
   Response.Write("You are a User");
else
   Response.Write("Invalid user");
				
Si utiliza la autenticación de formularios, las funciones no estén asignadas a la usuario autenticado; debe hacerlo mediante programación. Para asignar funciones a la autenticado el usuario, utilice el evento OnAuthenticate del módulo de autenticación (que es de los formularios módulo de autenticación en este ejemplo) para crear un nuevo objeto GenericPrincipal y asignarlo a la propiedad de usuario de HttpContext. El código siguiente se muestra Esto:

Código de Visual Basic.
Public Sub Application_AuthenticateRequest(s As Object, e As EventArgs)
   If (Not(HttpContext.Current.User Is Nothing)) Then
      If HttpContext.Current.User.Identity.AuthenticationType = "Forms" Then
         Dim id as System.Web.Security.FormsIdentity = HttpContext.Current.User.Identity
         Dim myRoles(3) As String
         myRoles(0)= "managers"
         myRoles(1)= "testers"
         myRoles(2)= "developers"
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles) 
      End If
   End If
End Sub
				
Código de Visual C#.
public void Application_AuthenticateRequest(Object s, EventArgs e)      
{
   if (HttpContext.Current.User != null)
   {
      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" ) 
      {
         System.Web.Security.FormsIdentity id = HttpContext.Current.User.Identity;
         String[] myRoles = new String[3];
         myRoles[0]= "managers";
         myRoles[1]= "testers";
         myRoles[2]= "developers";
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
      }
   }
} 
				
Para comprobar si el usuario es de un rol específico y restringir el acceso en consecuencia, utilice el código siguiente (o similar) en las páginas. aspx:

Código de Visual Basic.
If User.IsInRole("managers") Then
   Response.Write("You are a Manager")
Else If  User.IsInRole("testers") Then
   Response.Write("You are a Tester")
Else If User.IsInRole("developers") Then
   Response.Write("You are a Developer")
End if
				
Código de Visual C#.
if (User.IsInRole("managers"))
   Response.Write("You are a Manager");
else if (User.IsInRole("testers"))
   Response.Write("You are a Tester");
else if (User.IsInRole("developers"))
   Response.Write("You are a Developer");
				
Para obtener información adicional, haga clic en el artículo número siguiente para verlo en Microsoft Knowledge Base:
306238 Cómo: Implementar la función seguridad con autenticación basada en formularios en la aplicación de ASP.NET utilizando Visual Basic .net
Para obtener más información acerca de la seguridad basada en funciones, consulte el tema siguiente en la documentación del SDK de.NET Framework:
Seguridad basada en funciones
http://msdn.Microsoft.com/en-us/library/52kd59t0 (vs.71) .aspx

Referencias

Para obtener información sobre las directrices de seguridad ASP.NET, consulte el siguiente documento técnico MSDN:
Autenticación en ASP.NET: Guía de seguridad .net
http://msdn.Microsoft.com/en-us/library/ms978378.aspx
Para obtener información general acerca de ASP.NET, consulte el siguiente grupo de noticias MSDN:
Microsoft.public.dotnet.Framework.Aspnet
Para obtener información adicional, haga clic en el artículo números siguientes para verlos en Microsoft Knowledge Base:
311094 BUG: Mensaje de Error "ConfigurationException" cuando suplanta la configuración de lectura de cuentas
306359 PRB: Request.ServerVariables("LOGON_USER") devuelve una cadena vacía en ASP.NET
313091 Cómo: Crear claves con Visual Basic .net para su uso en la autenticación mediante formularios
313116 PRB: Las solicitudes de autenticación de formularios no se dirigen a loginUrl página
Para obtener más información, consulte los libros siguientes:
Reilly, J. Douglas Diseño de aplicaciones de Microsoft ASP.NET. Microsoft Press, 2001.

Esposito, Dino.Creación de soluciones Web con ASP.NET y ADO.NET. Microsoft Press, 2001.

Propiedades

Id. de artículo: 306590 - Última revisión: jueves, 28 de junio de 2012 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Palabras clave: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 306590

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com