Po przejrzeniu sekcji MVC na CodePlex zauważyłem, że atrybut [Authorize] w MVC zwraca HttpUnauthorizedResult(), gdy autoryzacja się nie powiedzie (codeplex AuthorizeAttribute class).MVC Autoryzuj atrybut + HttpUnauthorizedResult + FormsAhentication
W źródle HttpUnauthorizedResult() z CodePlex jest kod (nie mam pozwolenia na wpisanie innego adresu URL, ponieważ mój przedstawiciel nie jest wystarczająco wysoki, ale zastępuje numery z powyższego adresu URL numerem 22929 # 266476):
// 401 is the HTTP status code for unauthorized access - setting this
// will cause the active authentication module to execute its default
// unauthorized handler
context.HttpContext.Response.StatusCode = 401;
W szczególności komentarz opisuje domyślny nieautoryzowany moduł obsługi modułu uwierzytelniania.
Nie mogę znaleźć żadnych informacji na temat tego domyślnego nieautoryzowanego programu obsługi. W szczególności nie używam FormsAuthentication i gdy autoryzacja nie powiedzie się, otrzymuję nieprzyjemną stronę błędu IIS 401.
Czy ktoś wie o tym domyślnym nieautoryzowanym module obsługi, a w szczególności o tym, w jaki sposób funkcja FormsAuthentication włącza się, aby go zastąpić?
Piszę bardzo prostą aplikację dla mojej drużyny piłkarskiej, która potwierdza lub zaprzecza, czy może zagrać konkretny mecz. Jeśli włączę FormsAuthentication w web.config przekierowanie działa, ale nie używam FormsAuthentication i chciałbym wiedzieć, czy istnieje obejście.
Jakiego rodzaju uwierzytelniania używasz? – Zote
Czy chcesz w ogóle autoryzować? Jaki jest wynik końcowy, jeśli chodzi o uwierzytelnianie? –
Napisałem swój własny mały moduł uwierzytelniania, który przypisuje Tożsamość i Role. [Autoryzuj] musi sprawdzić, czy użytkownik może odwiedzić stronę, aby potwierdzić, że może grać w konkretnym meczu. Jeśli nie mogą grać w oparciu o rolę, zamiast podawać błąd 401, który jest całkiem nieużyteczny, chcę dać im więcej użytecznych informacji o tym, dlaczego nie mogą grać. Przesłonięcie tego 401 wydaje się logicznym sposobem na zrobienie tego, ale jestem zaskoczony, jak mało jest dokumentacji o tym domyślnym nieautoryzowanym handlerku – Anthony