2012-04-03 10 views
2

Wie würde ich von ASP.net eine SQL Server 2005/8-Datenbankanmeldung validieren und wenn das gültig ist, den Benutzer in der Anwendung anmelden?Verwenden der SQL Server-Authentifizierung mit ASP.NET-Formularauthentifizierung

Ich würde auch gerne diesen Benutzernamen und das Passwort in der Verbindungszeichenfolge verwenden, wenn möglich. Ich kann mir einen Weg vorstellen, dies mit string.replace auf UID und PWD zu erreichen, aber das ist kaum ideal.

Ich bin nicht in Windows-Authentifizierung interessiert, da das hier nicht gültig ist. Pure SQL Server-Logins. Ich habe bereits einen Weg, dies mit den Windows APIs zu tun.

Auch nicht an den Mitgliedschaft Anbietern interessiert.

+0

Also, wenn ich richtig verstehe, basiert die Authentifizierung vollständig darauf, ob der Benutzername/das Passwort für den Zugriff auf die SQL-Datenbank gültig ist? – mellamokb

+1

Nice edit @mellamokb. O_o – Khan

+0

yup Jeeves hat bereits ein eingebautes Benutzerauthentifizierungssystem, also könnte man es genauso nutzen, als mit etwas anderem zu experimentieren. – mhenrixon

Antwort

2

Ich würde empfehlen, ein SqlConnection Objekt mit zur Verfügung gestellt Benutzer und Passwort zu erstellen, und prüfen Sie, ob die Verbindung erfolgreich. Schließen Sie danach die Verbindung sofort und verwenden Sie die "Standardverbindung" für alle Funktionen Ihrer App. Auf diese Weise profitiert Ihre App vom Verbindungs-Pooling.

Die Verbindungszeichenfolge des Benutzers sollte kein Verbindungs-Pooling zulassen, sodass es wirklich geschlossen ist und nicht zur Wiederverwendung an den App-Pool gesendet wird.

Fügen Sie einfach Pooling=false zur Verbindungszeichenfolge hinzu. Dies verhindert, dass es sich bündelt.

sehen: Connection pooling

Pooling in Web-Szenarien besonders wichtig ist, wo Verbindungen sind opende und kontinuierlich geschlossen. Es wird standardmäßig von ADO.NET verwendet.

+0

Vielen Dank für die detaillierte Erklärung. Kein echtes Connection-Pooling, da maximal 10 Benutzer gleichzeitig vorhanden sind und das Pooling kein Problem von diesen Windows CE-Geräten sein wird. Was ich aber wollte, war einfach die Verbindung bei der Anmeldung zu testen und basierend darauf erstellen Sie den Cookie usw. – mhenrixon

+0

In der Tat, was ich erklären möchte ist, dass, wenn Sie eine Verbindung öffnen, um die Anmeldeinformationen zu überprüfen, außer Sie Pooling deaktivieren, die Verbindung wird offen bleiben. In diesem Fall ist das nicht sehr relevant, da es nur 10 Benutzer gibt, aber das war nicht auf dem ursprünglichen Post. Wie auch immer, ich denke, es lohnt sich, die Verbindungszeichenfolge mit pooling = fals zu ergänzen. – JotaBe

+0

Sie haben recht damit, dass ich das Pooling nutzen soll. Es gibt andere Benutzer, die über das ERP-System sowohl über Thin-Clients als auch über Rich-Clients mit der Datenbank verbunden sind, und das Offenhalten einer Verbindung wird am besten vermieden. – mhenrixon

1

Sie können einfach für den Benutzernamen und das Passwort auf Ihre Login-Seite und betten sie auf dem SQL-Verbindungszeichenfolge fragen

+0

Aber Idee: das würde eine andere Reihe von Verbindungen für jeden Benutzer erstellen, die ADO.NET Verbindungspooling besiegt. – JotaBe

+0

Ich meinte "schlechte Idee", sorry. – JotaBe

+0

aber das ist seine Anforderung. Wenn Sie unterschiedliche Benutzer wollen, wird sich das Pooling anders verhalten, natürlich – Diego

Verwandte Themen