Ich muss den Zugriff auf Ansichten basierend auf Benutzerberechtigungsstufen (es gibt keine Rollen, nur Berechtigungsstufen für CRUD-Betriebsebenen, die Benutzern zugewiesen sind) in meiner MVC 4-Anwendung steuern.
Als Beispiel; Unter dem AuthorizeUser befindet sich mein benutzerdefiniertes Attribut, das ich folgendermaßen verwenden muss:
[AuthorizeUser(AccessLevels="Read Invoice, Update Invoice")]
public ActionResult UpdateInvoice(int invoiceId)
{
// some code...
return View();
}
[AuthorizeUser(AccessLevels="Create Invoice")]
public ActionResult CreateNewInvoice()
{
// some code...
return View();
}
[AuthorizeUser(AccessLevels="Delete Invoice")]
public ActionResult DeleteInvoice(int invoiceId)
{
// some code...
return View();
}
Ist es möglich, dies so zu tun?
.Name.ToString()
ist redundant, da dieName
Eigenschaft bereits Zeichenfolge istHier ist eine Modifikation für die prev. Antworten. Der Hauptunterschied besteht darin, dass der Benutzer, wenn er nicht authentifiziert ist, die ursprüngliche Methode "HandleUnauthorizedRequest" verwendet, um zur Anmeldeseite umzuleiten:
quelle
Vielleicht ist dies für jeden in der Zukunft nützlich. Ich habe ein benutzerdefiniertes Berechtigungsattribut wie das folgende implementiert:
quelle
Wenn Sie die WEB-API mit Ansprüchen verwenden, können Sie Folgendes verwenden:
quelle