Domanda

la mia prima domanda è: dove metto questa estensione personalizzato in modo che si può chiamare, piuttosto che il default AuthorizeAttribute?

Io attualmente ho creato un nuovo progetto che contiene tutta la mia logica di business all'interno della mia soluzione MVC. Ho un file con estensione cs all'interno del mio progetto di logica che contiene tutti i miei corsi di sicurezza. Ho provato ad aggiungere una classe di estensione a quel file e il mio controller, che vede la classe proprio bene e IntelliSense non è abbaiare contro di me quando aggiungo l'attributo, ma quando provo a compilare, ottengo un errore che il tipo o dello spazio dei nomi non può essere trovato. Ha l'abitudine attributo devono essere alloggiati in un posto speciale al fine di compilare?

Seconda domanda ... potrebbe essere legato al primo: Quando sto cercando di eseguire l'override del metodo AuthorizeCore da AuthorizeAttribute, sto passando in System.Web.HttpContextBase come HttpContext. Per qualche motivo di Visual Studio non può risolvere System.Web.HttpContextBase. Anche in questo caso potrebbe essere correlato a dove ho questa classe salvato nella mia soluzione. O forse ho bisogno di importare una dll da qualche parte per estendere questo?

Si prega di avvisare.

È stato utile?

Soluzione

Per quanto ne so la classe può essere in qualsiasi progetto di libreria di classi fino a quando si hanno correttamente fatto riferimento al progetto nel vostro sito web. Si potrebbe desiderare di provare a ricompilare il progetto -. Suona come se fosse in grado di trovare i file di origine, ma il codice non è nella DLL

Probabilmente È necessario aggiungere in un riferimento a System.Web.Abstractions al progetto. Mentre le classi "base" sono nello spazio dei nomi System.Web, si trovano in una DLL diversa.

Altri suggerimenti

Funziona per me, spero che questo vi aiuterà.

using System.Web.Mvc;

public class CustomAuthorize : AuthorizeAttribute
{

}

In controller

 [CustomAuthorize]
public class OrderController : Controller
{

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top