Setup (przy użyciu MVC 4)ASP.net MVC filtr globalny autoryzacji zmuszając logowanie na działanie 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();
}
}
Problem
Połączenie ze stroną główną zmusza do załadowania strony logowania.
Pytanie
Kiedy() działanie HomeController.Index jest ozdobiony [AllowAnonymous], dlaczego ASP przekierować mnie do widoku logowania?
Używam this artykuł odsyłające
Właśnie sprawdziłem z wbudowanym Autoryzuj i działa dobrze dla mnie. Być może musisz sprawdzić swój niestandardowy kod autoryzacyjny. – VJAI
Próbowałem już z wbudowanym atrybutem Authorize, zastępując atrybut dodawany do filtru globalnego w moim pliku global.asax, ale nadal jestem przekierowywany do strony logowania podczas wywoływania akcji indeksu na kontrolerze domowym. Czy czegoś brakuje? Jakieś ustawienie w mojej konfiguracji sieci? Nie mam skonfigurowanego dostawcy członkostwa, dostawcy roli ani dostawcy profilu. Powinienem mieć? –
Ustawienia uwierzytelniania formularzy w pliku web.config są tymi, które przekierowują do strony logowania. Ale nie potrzebujesz dodatkowych ustawień. Próbowałem, tworząc nowy szablon aplikacji/Internetu MVC 4 oznaczający kontroler Home z akcją Authorize and Index z AllowAnonymous i działał zgodnie z oczekiwaniami. – VJAI