문제

모바일 사용자가 핸드셋에서 콘텐츠를 구매 및 다운로드 할 수있는 새로운 모바일 웹 플랫폼 구축. 과거에는 완전히 맞춤형 로그인 메커니즘을 사용했지만 다음 버전의 플랫폼에 맞춤 멤버십 제공 업체를 사용하여 조사하고 있습니다.

문제는 약간 이상한 "로그인"메커니즘 요구 사항이 있으므로 멤버십 전문가가 가장 적합하다고 100% 확신하지는 않습니다.

"예, 멤버십 제공 업체가 적합하다"또는 "아니오, 둥근 구멍에 정사각형 페그를 두드리는 것"으로 아래 요구 사항에 대한 일반적인 피드백을 찾고 있습니다.

요구 사항

  1. 사용자는 "휴대 전화 번호"(사용자 이름) & "핀"(비밀번호)으로 로그인해야 할 수도 있습니다. 이미 SMS로 가입하고 확인했으며 만족하므로 매우 잘 맞습니다. ValidateUser(string username, string password) 방법 구현

  2. 사용자는 "휴대 전화 번호"만으로 로그인해야 할 수도 있습니다. 이 경우, 우리는 신분증 검증을 귀찮게하지 않습니다. 사용자의 단계 수를 줄이고 청구를 시도 할 때 특정 연산자가 확인합니다. (운영자는 휴대폰 번호가 입력되었음을 확인하고 운영자 지불 사이트에 부딪 칠 때 핸드셋과 일치합니다) ... 따라서 사용자는 비밀번호를 가지고 있더라도 어딘가에서 멤버십 제공 업체를 허비해야합니다. 빈 암호로.

  3. 사용자는 전혀 로그인 할 필요가 없습니다. 이 경우 사용자를 특수 네트워크 운영자 웹 페이지로 투명하게 바운스 할 수 있으며 투명하게 튀어 오르면 헤더로 휴대 전화 번호를 얻을 수 있습니다. 이 경우 헤더에서 해당 숫자를 프로그래밍 방식으로 가져 가서 코드를 대신하여 로그인을 수행해야하며 (핀/비밀번호없이) 사용자는 마술처럼 자동 로그인됩니다.

요구 사항 2 & 3은 약간 이상합니다. 우리는 본질적으로 하나의 멤버십 제공 업체가 만족해야 할 3 가지 로그인 메커니즘을 가지고 있습니다.

  • 사용자가 모바일 및 사용자가 입력 한 PIN을 입력했습니다
  • 사용자가 모바일 만 입력했습니다 (뒤에 코드는 핀 요구 사항을 충족한다고 가정합니다)
  • 완전히 투명한 로그인 (전체 로그인 프로세스를 수행하기위한 코드)

누구나 위의 의견/피드백을 받거나 과거에 수행 한 기괴한 멤버십 제공 업체 구현에 대한 조언이 있습니다.

도움이 되었습니까?

해결책

나는 그것이 효과가 있다고 생각합니다. 우리는 우리 사이트 중 하나에서 #3을합니다. 다음은 우리가 그것을 처리하는 데 사용하는 코드 덩어리입니다. 이를 사용하려면 로그인 페이지 (TransparentLogin.aspx 또는 이와 유사한 것)를 작성하려면 Web.Config 파일 이이 페이지에 익명으로 액세스 할 수 있는지 확인하고 TransparentLogin.aspx 페이지의 Page_Load 함수에 이와 같은 코드를 넣으십시오.

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

그런 다음 멤버십 프로보더의 ValidateUser 함수에서 다음과 같은 점검을 수행해야합니다.

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

요구 사항 #2에 관해서는 약간 혼란 스러워요. 운영자는 정확히 무엇입니까? 웹 브라우저를 사용하여 웹 사이트를 탐색하는 휴대 전화를 처리하고 있다고 생각했습니다. 운영자는 어디에 맞습니까? 위에서 제안한 솔루션이 도움이되지 않으면 연산자에 대한 자세한 내용이있는 응답을 게시하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top