Mam witrynę internetową z niektórymi obszarami wymagającymi logowania za pomocą uwierzytelniania opartego na formularzach, używając mojego własnego dostawcy, który łączy się z bazą danych.Mieszanie uwierzytelniania podstawowego uwierzytelniania i formularzy w ASP.NET MVC3
Strona jest w podglądzie, więc chcę chronić całą witrynę za pomocą podstawowego uwierzytelniania, aby zapobiec nieautoryzowanemu dostępowi przed jego uruchomieniem.
Problem polega na tym, że uwierzytelnianie podstawowe i formularzy znajduje się na stronach, które będą publiczne, zamiast tego należy przejść do formularza logowania.
W jaki sposób mogę zachować uwierzytelnianie formularzy na potrzeby logowania członków i dostępu do portalu, ale chronić całą witrynę przed dostępem publicznym przed uruchomieniem za pomocą podstawowego uwierzytelniania?
Dzięki Alex. Próbowałem, ale mam ten sam problem. Problem polega na tym, że wszystkie strony ASP.NET (kontrolery) wymagają logowania, nawet te, które mają dodany atrybut [AllowAnonymous], opisany tutaj: http://blogs.msdn.com/b/rickandy/archive/2012/03/23/ zabezpieczenie-twojej-asp-net-mvc-4-app-and-the-new-reciponymous-attribute.aspx. – DaveO
Używam MVC3 i mam to do pracy "On My Machine", co wiem, nie pomaga. W powyższej konfiguracji mam niestandardowy filtr LogonAuthorize: AuthorizeAttribute, który wyklucza niektóre kontrolery z wymogu filtrowania. if (! (filterContext.Controller jest AccountController)) { base.OnAuthorization (filterContext); }. Nie jestem pewien, w jaki sposób będzie to wchodzić w interakcje z atrybutem AllowAnonymous (którego użyję, gdy przejdę do MVC4). – AlexC
Próbowałem dodać kontroler, jak pokazano w powyższym kodzie, ale wciąż ten sam problem :(Myślę, że potrzebuję jakiegoś modułu http lub coś jak narzeka IIS z "Nie można użyć zarówno metody uwierzytelniania opartej na wyzwaniach, jak i metody uwierzytelniania opartego na przekierowaniu logowania w tym samym czasie. "To jest sytuacja tymczasowa, więc naprawdę nie chcę zagłębiać się w zawiłości przetwarzania mieszanego uwierzytelniania lub pisania modułów http, jeśli mogę pomóc! To dziwne, że IIS /Asp.Net nie może obsłużyć bloku globalnego (uwierzytelnianie podstawowe) i logowania opartego na formularzach, gdy moje logowanie do formularzy jest oparte na bazie danych db. – DaveO