2011-01-03 21 views
15

Ich möchte die Authentifizierung auf meiner Website verwenden, um mich im Abschnitt "Admin" anzumelden. Ich habe bereits mein Datenbankschema. Ich möchte die ASP.NET-Mitgliedschaftstabellen für SQL Server nicht verwenden. Ich habe drei Tabellen: Mitarbeiter, Rollen und MitarbeiterInRole.Authentifizierung von benutzerdefinierten Formularen in MVC

Ich möchte das so einfach wie möglich halten, aber ich habe Probleme, eine Lösung zu finden. Ich möchte nur die Formularauthentifizierung mit meinen Tabellen verwenden, damit sich Mitarbeiter anmelden, abmelden, ihr Passwort ändern können usw.

Wenn mich jemand zu einem Blogpost oder Tutorial über dieses Thema bewegen könnte, wäre das großartig.

+0

Nicht sicher, wie sicher Ihre Daten muss sein oder der Risikofaktor, aber vorausgesetzt, dass es sich lohnt zu schützen, oder Sie würden nicht stören ... Achten Sie darauf, dass Sie die OWASP-Richtlinien befolgen. Die meisten Entwickler sollten ihre eigene Sicherheit nicht rollen lassen, wenn eine vorhandene API, die von Experten entwickelt und getestet wurde, leicht verfügbar ist. Wenn Sie jedoch darauf bestehen, sollten Sie zumindest die Richtlinien befolgen. http://www.owasp.org/index.php/Authentication_Cheat_Sheet – David

+7

@David: Ich muss nicht zustimmen - die Quelle der integrierten Implementierung ist für die Ableitung verfügbar. Es kann mühsam sein, die integrierten Tabellen zu verwenden, wenn Sie bereits Benutzertabellen in Ihrem Datenmodell integriert haben. Microsoft hat den Membership-Provider speziell für Schnittstellen eingerichtet, so dass er erweitert werden kann. –

+0

Ich werde meinen vorherigen Kommentar ändern - Passwortspeicherung ist keine einfache Sache und kann leicht falsch gemacht werden. Also, erweitern Sie sich, aber stellen Sie sicher, Sie verstehen, wie vertrauliche Daten im Ruhezustand in einer Datenbank zu verschlüsseln. –

Antwort

24

Steven, überprüfen Sie meine Reihe von Tutorials auf Website-Sicherheit aus: http://www.asp.net/web-forms/overview/older-versions-security/introduction/security-basics-and-asp-net-support-cs

(EDIT: Ich habe die oben genannte URL aktualisiert, wie die Original-URL wurde ein 404. Rückkehr Aber bedenken Sie bitte, dass dieses Material geschrieben wurde im Jahr 2008 und ist jetzt hoffnungslos veraltet.)

Die ersten drei Tutorials konzentrieren sich ausschließlich auf formularbasierte Authentifizierung, ohne Mitgliedschaft zu diskutieren. Diese ersten drei Tutorials - insbesondere die Tutorials 2 und 3 - sollten Sie in die richtige Richtung bringen.

Weitere Informationen zum Implementieren von Rollen ohne Verwendung des integrierten ASP.NET Roles-Frameworks finden Sie in diesem Artikel: Role-Based Authorization With Forms Authentication.

Alles was gesagt wird, würde ich vorschlagen, dass Sie ASP.NET Backed in Mitgliedschaft und Rollen Bibliotheken überdenken. Sie zu vermeiden bedeutet, dass Sie das Rad neu erfinden müssen, und Sie werden es wahrscheinlich falsch machen. (Speichern Sie z. B. Benutzerkennwörter sicher in Ihrer benutzerdefinierten Implementierung?)

Happy Programming!

+0

+1 - das eigene Rollen ist in der Regel eine schlechte Idee, und ich stimme dir vollkommen zu! – David

+1

Das funktioniert, bis Sie mit einem Nicht-SQL Server-Datenspeicher arbeiten müssen. –

+0

@EdDeGagne können Sie einen benutzerdefinierten Mitgliedschaftsanbieter für einen alternativen Datenspeicher erstellen. Vielleicht hat es jemand schon getan. Zum Beispiel ist hier ein benutzerdefinierter Mitgliedschaftsanbieter für MySQL - http: //www.codeproject.com/Articles/12301/Membership-und-Role-Provider-for-MySQL –

4

Der integrierte Mitgliedschaftsanbieter basiert auf Schnittstellen, deren Implementierung durch Ihre eigenen ersetzt werden kann, die (unter anderem) Ihre eigenen Tabellen für die Authentifizierung verwenden können. Hier

ist ein Video auf einen benutzerdefinierten ASP.NET-Mitgliedschaft Anbieter erstellen: http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider

Hier ist ein guter allgemeiner Artikel mit Zeigern auf andere Ressourcen:
http://weblogs.asp.net/scottgu/archive/2006/02/24/ASP.NET-2.0-Membership_2C00_-Roles_2C00_-Forms-Authentication_2C00_-and-Security-Resources-.aspx

Verwandte Themen