2009-07-29 20 views
3

Ich versuche, das Autorisieren für meinen Controller einstellen kann wie folgt vorgehen:Autorisieren Attribut eines konstanten Ausdruck mit

[Authorize(Roles = "Approver")] 

Wie auch immer die Namen der Rollen in der Datenbank gehalten werden, und deshalb würde Ich mag an versuchen und wie folgt vorgehen:

[Authorize(Roles = Settings.Instance.RoleEmployee)] 

aber ich bekomme die folgende Fehlermeldung:

An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type

Ein y um diese herum?

Antwort

0
public class UniqueAttribute : ValidationAttribute 
{   
    public string Identifier { get; set; } 

    public override bool IsValid(object value) 
    {   
     // Get property value 
     PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value); 
     string identifierValue = properties.Find(this.Identifier,  true).GetValue(value).ToString(); 
    } 
} 

Sie Wert jeder Eigenschaft wie folgt erhalten wird über

[UniqueAttribute(Identifier = "Id")] 
0

Wenn ein "Mitarbeiter" eine bekannte Rolle ist, dann ist diese definieren string-Konstante in Ihrer Anwendung und stellen Sie sicher, dass die in der Datenbank gespeicherte Rolle t zugeordnet werden kann sein Wert bei Bedarf.

Verwandte Themen