Setup (usando MVC 4)ASP.net MVC filtro globale Autorizza costringendo login su un'azione AllowAnonymous
public class MyAuthorizeAttribute : AuthorizeAttribute {
protected override bool AuthorizeCore(HttpContextBase httpContext) {
var isAuthorised = base.AuthorizeCore(httpContext);
if(isAuthorised) {
// retrieve authentication ticket from cookie and
// create custome principal and attach to
// httpContext.User
}
return isAuthorised;
}
}
Gloabl.asax.cs:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new MyAuthorizeAttribute());
}
HomeController.cs:
using System.Web.Mvc;
public class HomeController : Controller
{
[AllowAnonymous]
public ActionResult Index()
{
return View();
}
}
Problema
Una chiamata alla pagina iniziale impone la pagina di accesso da caricare.
Domanda
Quando il) azione (HomeController.Index è decorato con [AllowAnonymous], perché mi ASP reindirizza alla vista di accesso?
Sto usando this articolo per riferimento
Ho appena controllato con Autorizzazione integrata e sta funzionando bene per me. Potrebbe essere necessario verificare con il proprio codice di autorizzazione personalizzato. – VJAI
Ho provato con l'attributo Authorize incorporato, sostituendo l'attributo che viene aggiunto al filtro globale nel mio global.asax ma sto ancora venendo reindirizzato alla pagina di login quando si chiama l'azione index sul controller principale. Mi sto perdendo qualcosa? Qualche impostazione nella mia configurazione web? Non sono configurato provider di appartenenze, provider di ruoli o provider di profili. Dovrei avere? –
Le impostazioni di autenticazione dei moduli in web.config è quella che reindirizza alla pagina di accesso. Ma non hai bisogno di ulteriori impostazioni. Ho provato creando un nuovo modello di applicazione/Internet MVC 4 che contrassegna il controller Home con l'azione Autorizza e indicizza con AllowAnonymous e ha funzionato come previsto. – VJAI