Espero que pueda agregar algo de claridad adicional sobre las otras respuestas, ya que realmente no explican lo que está sucediendo, lo que no ayudará a confundir.
En primer lugar, poner en práctica su proveedor personalizado que desde el sonido de las cosas que has hecho ya, así que voy a vomitar un pequeño fragmento de código y no vamos a entrar en detalles más aquí:
using System.Web.Security;
public class MyCustomMembershipProvider : MembershipProvider
{
public override bool ValidateUser(string username, string password)
{
if (username.Equals("BenAlabaster") && password.Equals("Elephant"))
return true;
return false;
}
/* Override all the other methods required to extend MembershipProvider */
}
Luego de configurar el proveedor en su web.config asegurándose de rellenar los atributos que configuran la base de MembershipProvider:
<membership defaultProvider="MyCustomMembershipProvider">
<providers>
<clear />
<add name="MyCustomMembershipProvider"
type="MyNamespace.MyCustomMembershipProvider"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="10"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
applicationName="/" />
</providers>
</membership>
el siguiente bit Creo que estás pensando demasiado, el tie-in real para su aplicación web . Mientras que en una aplicación de WebForms tienes que codificar el resto para ti - el framework MVC hace el resto para ti - todo lo que necesitas hacer es agregar el atributo [Authorize] a tu método de acción y el framework verificará para ver si ha iniciado sesión, y si no lo redirecciona a la página de inicio de sesión. La página de inicio de sesión encontrará su proveedor personalizado porque eso es lo que está configurado en el web.config y registrará su usuario en Puede acceder a información sobre el usuario conectado a los controladores haciendo referencia al usuario objeto:.
public class WhateverController : Controller
{
[Authorize]
public ActionResult WhateverAction()
{
ViewData["LoggedInAs"] = string.Format("You are logged in as {0}.", User.Identity.Name);
Return View();
}
}
Por lo tanto, esta acción requiere que el usuario inicie sesión y presente la información del usuario en la vista Whatever/WhateverAction.aspx que se mostrará en la página.
Bien, eso tiene sentido, gracias por aclarar eso. Simplemente no estaba poniendo dos y dos juntos. Todavía estoy atrapado en ese estado de ánimo de WebForms y no me he dado cuenta cuando MVC lo hace por mí y cuando tengo que manejarlo por mí mismo. – BobTheBuilder