2009-07-23 11 views
10

Esto es una rama de this question.¿Cómo uso un control de inicio de sesión de ASP.NET sin utilizar un MembershipProvider?

  • ¿Cómo utilizar un control Login si yo no tengo un MembershipProvider de apuntarlo hacia?
  • ¿Comprendo correctamente el modelo de uso?
  • ¿Es incluso razonable hablar sobre el uso de un control Login sin un MembershipProvider?
  • Dosificar el MembershipProvider ¿hacer más que solo el nombre de usuario/contraseña de verificación?
  • ¿Sería más razonable crear mi propio MembershipProvider con la misma lógica de autenticación?

En mi caso, no necesito un MembershipProvider (creo) ya que mi situación de autenticación es trivial (un usuario, una contraseña).

Me interesa en parte la "prueba de futuro" de mi página y en parte porque soy nuevo y me pregunto cómo funcionan las cosas. (Tiendo a aprender sobre cosas corriendo a toda velocidad en cada caso de la esquina que puedo encontrar :)

Respuesta

23

Puede simplemente dejar caer el asp: control de inicio de sesión en su página, luego en el código de atrás, atrapar el evento Autenticar control de inicio de sesión.

En el evento de Autenticación, verifique el nombre de usuario/contraseña que el usuario ha ingresado. El nombre de usuario/contraseña son propiedades en el control de inicio de sesión. (Login.UserName, Login.Password)

Si el nombre de usuario/contraseña es correcto, simplemente configure la propiedad Authenticated args del evento en True.

No se requiere un proveedor de membresía.

ex. En la página aspx ..

<asp:Login ID="LoginCtrl" runat="server" DestinationPageUrl="YouAreIn.aspx"></asp:Login> 

en código subyacente

Private Sub Log_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles LoginCtrl.Authenticate 
    If LoginCtrl.UserName = "Hello" AndAlso LoginCtrl.Password = "Hello" Then 
     e.Authenticated = True 
    End If 

C#

void MyLogin_Authenticate(object sender, AuthenticateEventArgs e) 
{ 
    if(UserName == "Hello" && Password == "Hello") 
     e.Authenticated = true; 
} 
+0

+1 - Eso es lo que hago – juan

+2

Además, para forzar al usuario a ir a la página de inicio de sesión, use autenticación de formularios. –

+0

Si fuera tan fácil. Lo intenté y el inicio de sesión salta directamente a la página de inicio de sesión en lugar de a la página desde la que se redirigió. – BCS

3

Si no tiene un proveedor de membresía y realmente no tiene un sistema de seguridad del que hablar, simplemente coloque dos cuadros en un formulario (nombre de usuario, contraseña) y pruébelo con solo hacer clic en el botón.

El control de inicio de sesión es obviamente excesivo para lo que intenta hacer.

+0

probablemente estés en lo cierto ... por ahora. También eso me obliga a descubrir cómo tratar las cookies y la redirección y todo eso. – BCS

+0

No tengo problemas para crear una cookie, simplemente nunca he trabajado con ella y preferiría no tener que aprender en este momento. – BCS

Cuestiones relacionadas