Ich möchte nur nicht "Manager" für jedes Attribut verwenden und einige enum dafür verwenden.Verwenden Sie den Namen des Enum-Elements wie einen Attribut-Parameter
Aber es scheint, dass es unmöglich ist oder ich falsch liege?
Also versuche ich
[RequiresRole("Managers")]
mit
[RequiresRole(HardCodedRoles.Managers.ToString())]
...
public enum HardCodedRoles
{
Administrators,
Managers
}
Könnten Sie mehr Details hinzufügen, so dass wir wissen, was es ist, dass Sie versuchen, zu erreichen? – Maciej
Ich möchte einfach nicht die Zeichenfolge "AnyRoleName" verwenden und ich möchte stattdessen ein Element von enum einfügen. Aber VS gibt einen Fehler aus Ein Attributargument muss ein konstanter Ausdruck sein, typeof Ausdruck oder Array-Erstellungsausdruck eines Attributparametertyps –
Wenn HardcodedRoles.Managers eine Const-Zeichenfolge ist, würde dies funktionieren. Auf der anderen Seite, wenn HardcodedRoles eine Aufzählung ist, müssen Sie das AuthorizeAttribute ableiten und Ihre eigenen implementieren, indem Sie HardcodedRoles und/oder HardcodedRoles [] an den Konstruktor übergeben. – Maciej