4 Stimmen

MVC3 Autorisierung unter Verwendung von AD

Ist es möglich, Benutzer einer MVC3-Anwendung mithilfe von AD zu autorisieren/ablehnen?

Meine App ist derzeit durch die Windows-Authentifizierung gesichert, aber das bedeutet, dass Benutzer zu Gruppen auf dem Win2007-Server hinzugefügt werden müssen.

Ich möchte das ändern, damit Benutzern aufgrund ihrer AD-Rollen der Zugriff auf die Anwendung/und Controller-Actions/Views gestattet/verweigert wird, sodass sie entweder automatisch angemeldet werden (wie bei der Windows-Authentifizierung) oder auf eine "verweigert"-Seite umgeleitet werden.

Jede Hilfe wird sehr dankbar angenommen... alles, was ich finde, scheint auf Windows-Gruppen oder Formularauthentifizierung basiert zu sein.

4voto

Darin Dimitrov Punkte 990883

Sie könnten die Roles-Eigenschaft verwenden:

[Authorize(Roles = @"SOMEDOMAIN\somegroup")]
public ActionResult Foo()
{
    ...
}

Hier ist ein Tutorial, das die Schritte erklärt.

2voto

hometoast Punkte 11253

Ich verwende AD-Gruppen für meine Intranet-App.

dann habe ich nur Autorisierungsattribute zu meinen Controller-Aktionen hinzugefügt, die ich sicher machen musste:

[Authorize(Roles = MyNamesspace.Constants.MANAGER_GROUP)]
public ActionResult Blah() {...

Und in einer Ansicht können Sie User.IsInRole und den Namen ihrer AD/Windows-Gruppe verwenden.

Oder erhalten Sie eine Liste der Rollen, die der Webserver von diesem Benutzer sieht: System.Web.Security.Roles.GetRolesForUser();

Warnung: Mein Server und meine Clients befinden sich alle auf der gleichen Domäne. Dies funktioniert nicht, wenn Sie dasselbe für Webclients außerhalb Ihres ActiveDirectory gegenüberstellen müssen.

2voto

Bobby D Punkte 2089

Verwenden Sie einfach das Membership-Anbieter-Framework, das in Asp.net integriert ist. Sie werden feststellen, dass bereits ein ActiveDirectoryMembershipProvider out of the box vorhanden ist, aber Sie müssen den RoleProvider selbst implementieren, da die Mitgliedschaft in verschiedenen Netzwerken unterschiedlich definiert sein kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X