Pregunta

La construcción de una nueva plataforma web móvil para los usuarios móviles para la compra y descarga de contenidos en sus teléfonos. En el pasado hemos utilizado un mecanismo de acceso completamente a medida, pero estoy investigando el uso de un proveedor personalizado para la próxima versión de la plataforma.

Lo que pasa es que tenemos algunos "Login" requisitos mecanismo poco extraño, así que no estoy 100% seguro de que un MembershipProvider es la mejor opción.

Sólo en busca de un poco de alimentación general de la espalda a los requisitos a continuación con un "Sí, proveedor de suscripciones es un buen ajuste" o "No, estás golpeando una clavija cuadrada en un agujero redondo"

Requisitos

  1. El usuario puede ser requerido para iniciar la sesión con un "número de móvil" (nombre de usuario) y "pin" (contraseña) Esto encaja bastante bien, ya que ya se ha suscrito y confirmado con un SMS y satisface el Método de Aplicación ValidateUser(string username, string password)

  2. El usuario puede ser requerido para ingresar con sólo un "número de teléfono móvil". En este caso, no se molestan en hacer la verificación de la identidad de nuestro lado. Se reduce el número de pasos para el usuario y la verificación se realiza por el operador en particular cuando intentamos facturar ellos. (Los operadores pueden validar que el número de móvil entró en los partidos con el auricular cuando salga al sitio de pago del operador) ... así que a pesar de que los usuarios tienen una contraseña, que había necesidad de un farol el proveedor de pertenencia de alguna manera, y dejarlos en con una contraseña en blanco.

  3. El usuario no tiene que iniciar sesión en absoluto. En este caso, podemos rebotar de forma transparente al usuario a una página web especial del operador de red, y vamos a obtener el número de teléfono móvil en encabezados cuando se recuperaron de forma transparente para nosotros. En este caso, tendríamos que tomar programación que el número de las cabeceras, lleve a cabo el inicio de sesión en su nombre en el código detrás (de nuevo sin ningún tipo de perno / contraseña) y el usuario sería mágicamente automático iniciado sesión.

Requisito 2 y 3 son poco extraño. Esencialmente tenemos 3 diferentes mecanismos de acceso que necesitaría el proveedor de una membresía de satisfacer.

  • introducido por el usuario móvil y del usuario Entró Pin
  • El usuario Entró solo móviles (código detrás supongo que para satisfacer la solicitud de PIN)
  • Identificación completamente transparente (código detrás de hacer todo el proceso de inicio de sesión)

Alguien tiene cualquier comentario / pienso de nuevo en lo anterior o que tienen algún consejo sobre cualquier implementación proveedor de pertenencia extraña que has hecho en el pasado.

¿Fue útil?

Solución

Creo que podría funcionar. Hacemos # 3 en uno de nuestros sitios. Aquí es un trozo de código que utilizamos para cuidar de él. Para utilizar esta, crear una página de inicio de sesión (transparentlogin.aspx o algo similar), asegúrese de que el archivo web.config permite el acceso anónimo a esta página, y poner un código como éste en la función Page_Load de la página transparentlogin.aspx:

const string specialpassword = "ThisIsOurSpecialPasswordForBehindTheScenesLogin";

if (MobileNumberFoundInHeader())
{
  string username = GetMobileNumberFromHeaders();
  // Authenticate the user behind the scenes
  System.Web.Security.FormsAuthentication.SetAuthCookie(username, false);
  System.Web.Security.FormsAuthentication.Authenticate(username, specialpassword);
}
else
{
  throw new Exception ("Mobile Number Missing");
}

A continuación, en la función ValidateUser en el MembershipProvider, asegúrese de hacer una verificación de la siguiente manera:

public override bool ValidateUser(string username, string password)
{
 const string specialpassword = "ThisIsOurSpecialPasswordForBehindTheScenesLogin";

 bool ValidationSuccess = false;

 // If the password being passed in is the right secret key (same  
 // for all users), then we will say that the password matches the
 // username, thus allowing the user to login 
 if (password == specialpassword)
 {
   ValidationSuccess = true;
 }

 if (DoStandardUsernamePasswordVerification() == true)
 {
   ValidationSuccess = true;
 }

 return ValidationSuccess;
}

En cuanto a la exigencia # 2, estoy un poco confundido. ¿Qué es exactamente un operador? Pensé que se trataba de un teléfono móvil usando un navegador web para navegar a un sitio web. ¿De dónde viene el operador encaja en eso? Si la solución que propongo anterior no ayuda, por favor publicar una respuesta con más detalles sobre el operador.

Tim

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top