Wie stelle ich die integrierte Sicherheits- und Benutzerverwaltung einer MVC-Anwendung zur Verfügung?

9

Ich habe eine MVC-Website auf IIS6 erstellt. Ich habe die integrierte ASP.NET-Sicherheit ohne Mitgliedschaft verwendet, so wie sie in der Vorlagenlösung implementiert wurde. Es ist einfach, einen Contoller oder eine Aktion zu sichern, aber jetzt muss ich die Benutzerverwaltung einem Administrator offen legen, der bei der Site angemeldet ist. Ich verstehe, dass die eingebauten ASP-Steuerelemente dafür nicht "Best Practice" sind und ein Hund sind, um zu arbeiten. Was ist die beste Vorgehensweise, um Benutzerverwaltung über eine ASP.NET MVC-Anwendung anzubieten?

Ich überlegte, das Entity Framework zu verwenden und es mit den unzähligen gespeicherten Procs zu verbinden. aber das scheint peinlich. Ich sehe Optionen für AccountMembershipService und FormsAuthenticationService. Das nutzt der vorhandene Projekt-Account-Controller. Aber ich bin mit beiden nicht einverstanden.

Ich kann nicht anders, als zu denken, dass dies schon von der Projektvorlage her geschehen sollte. Dies ist ein grundlegender Teil jeder Website und Sie erhielten 15%, warum nicht den Rest?

    
DrydenMaker 23.07.2009, 15:47
quelle

5 Antworten

0

Ich habe Benutzerauthen jetzt auf eine vernünftige Weise arbeiten. Die größte Hürde zu überwinden ist, dass es in Ordnung ist, die Mitgliedschaftsklassen zu verwenden, obwohl ich nicht den Profilaspekt der Mitgliedschaft verwende. Es ist einfach, den Benutzernamen zu erhalten und Membership.GetUser (UserName) zu machen. Dann können Sie viele Dinge tun, wie Entsperren, Genehmigen / Ablehnen, ändern Sie das Passwort und ändern Passwort Frage / Antwort ... alle Grundlagen, die ich brauche.

Hier sind die Grundlagen:

%Vor%

und das ist meistens alles da ist es auch

    
DrydenMaker 14.08.2009, 21:03
quelle
1

Soweit ich das beurteilen kann, verwenden Sie SqlMembershipProvider als Implementierung Ihres Mitgliedschaftsanbieters. Ich schlage vor, dass Sie sich einige der Methoden von MembershipUser und MembershipProvider -Klassen (wie CreateUser usw.) ansehen, um was zu erreichen Sie versuchen dies zu tun, anstatt mit den zugrunde liegenden Datenbanktabellen zu arbeiten, die für die Implementierung verwendet werden.

Sie können sich auch diesen Artikel für ein ausführliches Intro zu ASP ansehen .NET-Anbieter für Mitgliedschaft, Rollen und Profil .

    
paracycle 24.07.2009 14:42
quelle
1

Sieh dir dieses Projekt bei CodePlex an: ASP.Net MVC Mitgliedschaft Starter Kit

    
Eduardo Molteni 25.07.2009 16:43
quelle
0

Ich weiß nichts über "best practice", aber so würde ich es machen (und wie es in " Professionelle ASP.NET MVC 1.0 "):

Sie sollten einen benutzerdefinierten Profilprovider und einen Mitgliedschaftsanbieter haben (oder den Standard), damit dies funktioniert.

Erstellen Sie einen Controller, der alle Aktionen der Mitgliederverwaltung behandelt, z. MemberAdminController

Dieser Controller sollte das Attribut Authorize [Roles="Administrator"] haben, damit alle Aktionen in diesem Controller nur dann ausgeführt werden, wenn der Benutzer sich in der Administratorrolle befindet.

Jetzt können Sie die CRUD-Ansichten und -Aktionen so erstellen, wie Sie nur diesen Controller verwenden möchten.

    
Peter 27.07.2009 10:37
quelle
0

In MvcCms haben wir den RoleProvider standardmäßig verwendet, aber den Mitgliedschaftsprovider in eine Entität umgewandelt.

Ссылка

    
MvcCmsJon 10.10.2010 01:10
quelle