Versión imprimible       Enviar     
Evaluar y enviar comentarios

  Encender vista de ancho de banda bajo
Esta página es específica de
Microsoft Visual Studio 2005/.Net Framework 2.0

Hay además otras versiones disponibles para:
FormsAuthentication (Clase)
Administra los servicios de autenticación de formularios para las aplicaciones Web. No se puede heredar esta clase.

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

Visual Basic (Declaración)
Public NotInheritable Class FormsAuthentication
Visual Basic (Uso)
Dim instance As FormsAuthentication
C#
public sealed class FormsAuthentication
C++
public ref class FormsAuthentication sealed
J#
public final class FormsAuthentication
JScript
public final class FormsAuthentication
XAML
No aplicable.

La autenticación de formularios habilita la validación de usuario y contraseña para aplicaciones Web que no requieren la autenticación de Windows. Con la autenticación de formularios, la información sobre el usuario se almacena en un origen de datos externo, como una base de datos Membership, o en el archivo de configuración de una aplicación. Cuando se autentica un usuario, la autenticación de formularios mantiene un vale de autenticación en una cookie o en la dirección URL para que un usuario autenticado no necesite proporcionar las credenciales con cada solicitud.

La autenticación de formularios se habilita al establecer el atributo mode del elemento de configuración authentication en Forms. Puede requerir que todas las solicitudes a una aplicación contengan un vale de autenticación de usuario válido utilizando el elemento de configuración authorization para denegar la solicitud de cualquier usuario desconocido, como se muestra en el ejemplo siguiente.

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="login.aspx" />
  </authentication>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>

En el ejemplo anterior, cualquier solicitud para una página ASP.NET que forma parte de la aplicación requiere que la autenticación de formularios proporcione un nombre de usuario válido. Si no existe ningún nombre de usuario, la solicitud se redirige a la propiedad LoginUrl configurada.

La clase FormsAuthentication proporciona el acceso a los métodos y propiedades que puede utilizar en una aplicación que autentica a los usuarios. El método RedirectToLoginPage redirige un explorador a la propiedad LoginUrl configurada para los usuarios que inician sesión en una aplicación. El método RedirectFromLoginPage vuelve a redirigir un usuario autenticado a la dirección URL protegida original que se solicitó o a la propiedad DefaultUrl. Hay también métodos que permiten administrar vales de autenticación de formularios si es necesario.

El ejemplo de código siguiente muestra el archivo Web.config de una aplicación ASP.NET que utiliza el proveedor de suscripciones de ASP.NET para la autenticación de formularios y exige que todos los usuarios se autentiquen.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
  </connectionStrings>
  <system.web>
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
      <providers>
        <add name="SqlProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="SqlServices"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="true"
          passwordFormat="Hashed"
          applicationName="/" />
      </providers>
    </membership>
  </system.web>
</configuration>

En el ejemplo de código siguiente se muestra la página de inicio de sesión de una aplicación ASP.NET que utiliza autenticación de formularios y suscripción de ASP.NET.

Nota de seguridadNota: de seguridad

Este ejemplo contiene 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
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>

<!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 Login_OnClick(sender As Object, args As  EventArgs)

   If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
   Else
     Msg.Text = "Login failed. Please check your user name and password and try again."
   End If

End Sub

</script>

<html  >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>
C#
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>

<!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 Login_OnClick(object sender, EventArgs args)
{
   if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
   else
     Msg.Text = "Login failed. Please check your user name and password and try again.";
}


</script>

<html  >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>
System.Object
  System.Web.Security.FormsAuthentication
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.

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.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0
© 2009 Microsoft Corporation. Reservados todos los derechos. Términos de uso  |  Marcas Registradas  |  Privacidad
Page view tracker