Ich benutze MVC5 und wollte eine nette kleine Klasse wie in Fragen hier vorgeschlagen haben - ein Attribut, das ermöglicht, mehrere Rollen für die Rollenautorisierung zu übergeben. Definition sieht wie folgt aus:Benutzerdefinierte AuthorizeAttribute funktioniert nicht richtig
public class AuthorizeRolesAttribute : AuthorizeAttribute
{
public AuthorizeRolesAttribute(params string[] roles)
{
Roles = string.Join(",", roles);
}
}
Die Verwendung ist (zum Beispiel) wie folgt aus:
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
</modules>
</system.webServer>
Und es immer noch:
[AuthorizeRoles("Admin", "SuperAdmin")]
public ActionResult CompanyContacts()
{
return View();
}
Auch in web.config ich nächste Zeile hinzugefügt ermöglichen Sie Benutzern Zugriff auf die Methode. Es ignoriert sogar den Konstruktor überhaupt. Das Standardattribut funktioniert einwandfrei. Es scheint, als ob ich etwas verpasse. Irgendein Rat?
Danke!
haben Sie Ihr Attribut in Attributen registriert? und haben Sie die Implementierung der onActionExecuting-Methode im Attribut bereitgestellt? –
Nein. Der Grund ist - Ich möchte nur das Standardattribut eine Fähigkeit haben, mehrere Rollen nicht als eine einzelne Zeichenfolge, sondern als Parameter zu akzeptieren. Alles andere Verhalten von Autorisieren ist gut für mich. – Pritorian