2016-12-01 2 views
0

Ich versuche, eine kleine Cross-Plattform mit Xamarin für Visual Studio (2015) zu entwickeln, die Felder aus einer SQL Server-Datenbank liest und sie auf einer einfachen Benutzeroberfläche anordnet.Best Practices zum Erstellen von Authentifizierungslogik für plattformübergreifende mobile App

Die Datenbank hat nur eine Tabelle, Benutzer, mit einigen Spalten für Benutzerinformationen, und zwei von ihnen den Benutzernamen und das Passwort enthält, dass der Benutzer seine Informationen anmelden und sehen nutzen sollten.

Ich dachte an eine einfache SQL-Abfrage mit der System.Data.SqlClient.SqlConnection Klasse in einer ähnlichen Art und Weise der Umsetzung:

SELECT TOP 1 * 
FROM Users 
WHERE Username = @username AND Password = @password 

Oder vielleicht ein Verfahren wie diese
Easiest way to validate user in stored procedure?
mit System.Data Aufruf .SqlClient.SqlCommand

... und dann speichern, wenn der Login passiert ist, die Felder in einigen Variablen und dann verknüpfen sie mit den Textfeldern auf der Schnittstelle.

Ich weiß nicht, ob dies der richtige Weg ist, und es sieht so aus, als könnte ich nicht einmal einen REST-Dienst für die Anmeldung implementieren, da es nur einen "Master" -Benutzer gibt, der auf die Datenbank selbst zugreifen kann.

Das erste Problem, das ich mit der obigen Logik sehe, ist, wie kann ich überprüfen, ob der Benutzer bereits angemeldet ist, wenn zu viel Zeit vergangen ist, ohne eine Sitzung oder ein Token?

Meine Frage ist, hat jemand ein paar gute Tutorials und Anleitungen zu studieren, vielleicht mit einigen guten Beispielen, so dass ich diese Authentifizierung/Login-Schwierigkeit adressieren kann?

(Sorry für die Fehler, bin ich zu diesem Thema neu und lernen möchten) für diese

+0

Hallo Rob, ich bin mir nicht sicher, ob ich deine Frage richtig verstanden habe, aber ich speichere Benutzername und Passwort also, wenn der Benutzer "schon existiert", kann er sich mit seinen Zugangsdaten einloggen, da die Benutzer bereits in der Datenbank existieren. –

+0

Muss das Rad nicht erfinden. https://developer.xamarin.com/guides/xamarin-forms/web-services/authentication/azure/ –

+0

Hallo Dany, soweit ich die von dir gepostete Methode verstehe nutzt einen Drittanbieter für die Authentifizierung, habe ich bereits Nutzer und Passwörter in meiner Datenbank und das sollte die einzige Möglichkeit zur Authentifizierung sein. –

Antwort

0

Es gibt nicht wirklich beste Praxis ist. Erstens tun Sie das Richtige, indem Sie Ihre SQL-Abfrage parametrisieren. Sie müssen sicherstellen, dass keine SQL-Injection-Angriffe stattfinden. Aber die Art, wie Sie sich authentifizieren, liegt ganz bei Ihnen. Sie können in oAuth nachsehen, wenn Sie den Industriestandard für die Anmeldung über Websites verwenden möchten.

Aber in Ihrem Fall möchten Sie vielleicht einfach ein statisches Wörterbuch von Benutzernamen durch Token behalten. Wenn sich ein Benutzer anmeldet, fügen Sie einfach eine GUID zu einem Wörterbuch hinzu und geben Sie diese GUID an den Benutzer weiter. Bei nachfolgenden Anrufen wissen Sie dann, wer der Benutzer ist, da sie das Token bei jedem Anruf an Sie weitergeben. Stellen Sie sicher, dass Sie die Token ablaufen lassen, indem Sie sie nach etwa 24 Stunden aus dem Wörterbuch entfernen.

Verwandte Themen