Frage

meine erste Frage ist, wo ich diese benutzerdefinierte Erweiterung gelegt, so dass es eher aufgerufen werden kann als der Standard AuthorizeAttribute?

Ich habe gerade ein neues Projekt erstellt, das alle meine Business-Logik in meiner MVC-Lösung enthält. Ich habe eine CS-Datei in meinem Logik-Projekt, das all meine Sicherheitsklassen enthält. Ich habe versucht, auf diese Datei eine Erweiterung Klasse hinzufügen und auf meinem Controller, es die Klasse sieht ganz gut und Intellisense wird mich nicht an zu bellen, wenn ich das Attribut hinzufügen, aber wenn ich zu kompilieren versuchen, ich erhalte eine Fehlermeldung, dass der Typ oder Namespace konnte nicht gefunden werden. Hat das benutzerdefinierte Attribut Notwendigkeit zu einem ganz besonderen Ort, um zu kompilieren untergebracht werden?

Die zweite Frage ... könnte mit dem ersten in Beziehung gesetzt werden: Wenn ich versuche, die AuthorizeCore Methode von AuthorizeAttribute außer Kraft zu setzen, ich bin als Httpcontext in System.Web.HttpContextBase vorbei. Aus irgendeinem Grund kann Visual Studio System.Web.HttpContextBase nicht lösen. dies könnte wieder im Zusammenhang mit dem ich diese Klasse in meiner Lösung gespeichert habe. Oder vielleicht brauche ich eine DLL irgendwo importieren diese zu verlängern?

Bitte beraten.

War es hilfreich?

Lösung

Soweit ich weiß die Klasse in jeder Klassenbibliothek Projekt sein kann, solange Sie richtig das Projekt in Ihrer Website verwiesen haben. Sie möchten vielleicht neu zu kompilieren, das Projekt versuchen -. Es klingt wie es ist in der Lage, die Quelldateien zu finden, aber der Code ist nicht in der DLL

Sie müssen wahrscheinlich in einem Verweis auf System.Web.Abstractions zu einem Projekt hinzuzufügen. Während die „Basis“ Klassen im Namespace System.Web sind, werden sie in einer anderen DLL gefunden.

Andere Tipps

Es funktioniert für mich, ich hoffe, das wird Ihnen helfen.

using System.Web.Mvc;

public class CustomAuthorize : AuthorizeAttribute
{

}

In controller

 [CustomAuthorize]
public class OrderController : Controller
{

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top