Ich verwende ein benutzerdefiniertes AuthorizeAttribute in meinem Mvc4-Projekt:
public sealed class ClaimsAuthorizeAttribute : AuthorizeAttribute
{
public ClaimsAuthorizeAttribute(){}
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext)
{
// Sicherheitsstuff hier...
return base.AuthorizeCore(httpContext);
}
}
Dann dekoriere ich Controlleraktionen mit diesem Attribut:
[ClaimsAuthorize(Roles = "Entwickler")]
public ActionResult Autorisieren()
{
return View();
}
Wenn ich die Attributklasse in mein MVC-Projekt einfüge, funktioniert alles wie erwartet.
Wenn ich die Attributklasse jedoch in einer externen Assembly platziere, auf die mein MVC-Projekt verweist, passiert nichts. Die Namespaces sind in beiden Fällen gleich. Die Referenzen meines externen Assembly-Projekts enthalten System.Web und System.Web.Mvc.
Ich kann nicht sehen, was fehlt. Hat jemand eine Idee?