Pergunta

A construção de uma nova Plataforma Web Mobile para usuários móveis para compra e download de conteúdo em seus celulares. No passado, usei um totalmente bespoke mecanismo de login, mas eu estou investigando usando um provedor personalizado Membership para a próxima versão da plataforma.

A coisa é, nós temos algumas "Login" requisitos mecanismo um pouco estranhos, então eu não estou 100% de certeza que um MembershipProvider é o mais adequado.

Basta olhar para alguns de volta geral de alimentação sobre os requisitos abaixo com um "Provedor Sim, adesão é um bom ajuste" ou "Não, você está batendo um pino quadrado em um buraco redondo"

Requisitos

  1. O usuário pode ser necessário para o login com um "Mobile Number" (nome de usuário) e "Pin" (senha) Isso se encaixa muito bem, como eles já se inscreveram e confirmados com um SMS e satisfaz os ValidateUser(string username, string password) Implementation Method

  2. O usuário pode ser necessário para o login com apenas um "número de celular". Neste caso, não se incomode fazendo a verificação de identidade do nosso lado. Ele reduz o número de passos para o utilizador e verificação é feita pelo operador em particular quando tentamos cobrá-los. (Os operadores podem validar que o número de telemóvel introduzido, partidas com o aparelho quando ele atinge o site de pagamento operador) ... por isso mesmo que os usuários tenham uma senha, tínhamos necessidade de blefar o provedor de associação de alguma maneira, e deixá-los em com uma senha em branco.

  3. O usuário não precisa fazer o login em tudo. Neste caso, podemos transparente saltar o usuário para uma página especial do operador de rede, e nós vamos chegar a número de celular em cabeçalhos quando eles estão transparente saltou de volta para nós. Neste caso, precisaríamos tomar programaticamente que o número dos cabeçalhos, execute o login em seu nome no código por trás (novamente sem qualquer pin / senha) e o usuário seria magicamente auto logado.

Requisito 2 & 3 são pouco estranho. Nós têm essencialmente 3 mecanismos de login diferentes que o prestador de um membro seria necessário para satisfazer.

  • Introduzido Utilizador Móvel & usuário Introduzido Pin
  • Introduzido usuário móvel Only (código por trás Suponho que para satisfazer a exigência pinos)
  • completamente transparente Login (código por trás para fazer todo o processo de login)

Alguém tem alguma volta comentários / feed na acima ou tem algum conselho sobre qualquer implementação de provedor de associação bizarra que você fez no passado.

Foi útil?

Solução

Eu acho que poderia trabalhar. Fazemos # 3 em um de nossos sites. Aqui está um pedaço de código que usamos para cuidar dela. Para usar isso, crie uma página de login (transparentlogin.aspx ou algo similar), certifique-se de que o arquivo web.config permite o acesso anônimo a esta página e código put como esta na função page_load para a 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");
}

Em seguida, na função ValidateUser na MembershipProvider, certifique-se de fazer uma verificação de como isto:

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;
}

Quanto à exigência # 2, eu estou um pouco confuso. O que exatamente é um operador? Pensei que estávamos lidando com um telefone celular usando um navegador web para navegar para um site. Qual o lugar da operadora em que? Se a solução que proponho acima não ajudar, por favor postar uma resposta com mais detalhes sobre o operador.

Tim

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top