Frage

Ich habe eine einfache jQuery -mobile Website mit ASP.NET MVC 2 erstellt und verwendet grundlegende Formulare -Authentifizierung, um Zugriff auf die Website zu gewähren.

Die Anwendung ist ein einfaches Arbeitstagebuch, mit dem ein regionaler Manager Details zu den aktuellen Problemen einsehen, die einem regionalen Team zugewiesen sind.

Wenn eine mobile Verbindung verfügbar ist, funktioniert die App sehr gut, aber aufgrund mangelnder Signal müssen wir die Möglichkeit untersuchen, den Kern der Anwendung offline zur Verfügung zu stellen. Ich habe die Möglichkeit untersucht, die App mithilfe von HTML 5 offline zu stellen, kann jedoch keine Informationen über die Authentifizierung von Benutzern finden.

Die App ist sehr einfach und verfügt im Wesentlichen über zwei verschiedene Listenbildschirme, die in die Jobdetails eingehen.

1. Login    
    1.1 Job List    
        2. Job Details

    1.2 Team Diary    
        2. Job Details

Ich glaube, es wäre einfach genug, eine Offline -Version der Daten zu erstellen, die das Surfen des Tagebuchs ermöglichen würde, wenn eine Verbindung nicht verfügbar ist, aber ich kann keine Informationen über eine Website finden, die eine Authentifizierung erfordert offline genommen werden.

Der Inhalt ist keine sensiblen Daten, aber offensichtlich möchte der Kunde nicht, dass jemand das Arbeitstagebuch über eine öffentliche Website durchsuchen kann.

Was ist der bevorzugte Weg, um Benutzer in einer Website zu authentifizieren, die möglicherweise offline verwendet werden könnte?

War es hilfreich?

Lösung

Ich mache eine MVC3 -Site für den Offline -Gebrauch um und bin auf einige der gleichen Probleme.

Eine Sache, auf die Sie achten müssen, ist, dass der Browser versucht, alle im Cache aufgeführten Dateien herunterzuladen. Dies verursacht ein Problem, wenn der Benutzer noch nicht angemeldet ist und Sie eine klassische Umleitung zu einer Anmeldeseite haben, wenn der Benutzer nicht authentifiziert ist. Sie müssen eine "statische" Ansicht dieser Seiten für den öffentlichen Zugriff öffnen und Ihr JavaScript feststellen lassen, ob der Benutzer angemeldet ist oder nicht, bevor Sie versuchen, Updates abzurufen/zu senden. Auf diese Weise können die statischen Nicht-In-In-In-In-Incontent-Seiten vom Browser heruntergeladen werden und Ihrem JavaScript den Inhalt nach Bedarf verwalten.

Meine App verwendet eine Methode, die ausgeliehen wurde Jim Lehmer, um Online -Konnektivität zu erkennen.

Sobald wir festgestellt haben, dass wir verbunden sind, habe ich eine kleine Aktion in meinem Konto -Controller erstellt, die gut zurückgibt, ob der Benutzer authentifiziert ist oder nicht:

    public JsonResult IsAuthenticated()
    {
        return Json(new { Request.IsAuthenticated }, JsonRequestBehavior.AllowGet);
    }

Ich hoffe, das hilft!

Andere Tipps

Ah. Ich sehe, was Sie jetzt fragen. Ich würde wie folgt vorschlagen.

Wenn der Benutzer zum ersten Mal auf die Anwendung zugreift, überprüft er die Existenz lokaler Daten (die richtigen lokalen Daten?). Wenn diese lokalen Daten vorhanden sind, wird angenommen, dass der Benutzer Zugriff auf das System hat. Überprüfen Sie nun eine Internetverbindung, wenn sie vorhanden ist, fordern Sie nach ordnungsgemäßen Anmeldeinformationen, wenn keine Verbindung offline funktioniert. So können sie glücklich offline arbeiten.

Sobald dieser Benutzer eine Verbindung zum Internet zurückgewiesen hat, bevor der Benutzer lokal mit Remote synchronisiert wird, fragen Sie den Benutzer nach seinen Anmeldeinformationen. In dem Fall, dass sie ursprünglich Internet -Konnektivität hatten, speichert die Anwendung zweifellos ein Zeichen ihrer richtigen Authentifizierung und kann ohne Frage synchronisieren. Fragen Sie jetzt nach einem Passwort.

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