Frage

Der Aufbau einer neuen Mobile Web-Plattform für mobile Benutzer kaufen und Herunterladen von Inhalten auf ihren Handys. In der Vergangenheit haben wir einen völlig maßgeschneiderten Login-Mechanismus verwendet, aber ich bin die Untersuchung eines benutzerdefinierten Mitgliedschaftsanbieter für die nächste Version der Plattform verwendet wird.

Die Sache ist, wir einige etwas seltsam „Login“ -Mechanismus Anforderungen haben, so bin ich nicht 100% sicher, dass ein MembershipProvider ist die beste Lösung.

Einfach mal für einige allgemeine Rückkopplungs auf die Anforderungen unten mit einem „Ja, Membership Provider ist eine gute Passform“ oder

„Nein, du bist einen quadratischen Pflock in ein rundes Loch hämmern“

Anforderungen

  1. Der Benutzer kann mit einem "Mobile Number" (Benutzername) und "Pin" (Passwort) anmelden erforderlich Das passt sehr gut, da sie bereits angemeldet sind und mit einem SMS bestätigt und es erfüllt die ValidateUser(string username, string password) Implementierung der Methode

  2. Der Benutzer kann mit nur einem „Mobile Number“ einzuloggen erforderlich. In diesem Fall stören wir nicht die Identitätsprüfung auf unserer Seite zu tun. Es reduziert die Anzahl der Schritte für den Benutzer und Überprüfung durch die jeweiligen Betreiber erfolgt, wenn wir versuchen, sie zu berechnen. (Die Betreiber können bestätigen, dass die Handy-Nummer eingegeben, übereinstimmt mit dem Hörer, wenn es die Betreiber Zahlungsaufstellungsort trifft) ... so, obwohl Nutzer ein Passwort haben, würden wir die Mitgliedschaftsanbieter in someway bluffen müssen, und lassen Sie sie in mit einem leeren Kennwort.

  3. User brauchen gar nicht um sich einzuloggen. In diesem Fall können wir den Benutzer zu einer speziellen Netzbetreiber der Homepage transparent abprallen, und wir werden die Handynummer in Header erhalten, wenn sie transparent zu uns zurückprallt. In diesem Fall müssten wir die Zahl von den Header programmatisch nehmen, führen Sie die Login in ihrem Namen in der Code-behind (wieder ohne Stift / Passwort) und der Benutzer auf magische Weise in Auto angemeldet sein würde.

Anforderung 2 & 3 sind etwas seltsam. Wir haben im Wesentlichen drei unterschiedliche Login-Mechanismen, die eine Mitgliedschaft Anbieter müßten gerecht zu werden.

  • Benutzereingabe Mobile & Benutzer eingegebene PIN
  • Benutzereingabe Mobil Nur (Code hinter ich nehme den Stift Anforderung gerecht zu werden)
  • vollständig transparent Login (Code hinter dem gesamten Login-Prozess zu tun)

Jeder bekam keine Kommentare / ernähren sich von dem oben zurück oder haben irgendwelche Ratschläge über jede bizarre Mitgliedschaft Provider-Implementierung Sie in der Vergangenheit getan haben.

War es hilfreich?

Lösung

Ich denke, es könnte funktionieren. Wir tun # 3 auf einem unserer Standorte. Hier ist ein Stück Code, den wir kümmern sich um sie nutzen. Um dies zu verwenden, erstellen Sie eine Login-Seite (transparentlogin.aspx oder so ähnlich), stellen Sie sicher, dass Sie die Datei web.config auf dieser Seite der anonymen Zugriff erlaubt, und setzt Code wie dies in der page_load Funktion für die transparentlogin.aspx Seite:

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

Dann wird in der ValidateUser Funktion im MembershipProvider, stellen Sie sicher, dass Sie tun einen Scheck wie folgt aus:

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

Wie bei Anforderung # 2, bin ich ein wenig verwirrt. Was genau ist ein Operator? Ich dachte, uns mit einem Mobiltelefon zu tun hatten einen Web-Browser auf eine Webseite zu sehen. Wo passt der Bediener in das? Wenn die Lösung, die ich oben schlagen nicht hilft, schreiben Sie bitte eine Antwort mit mehr Details über den Operator.

Tim

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top