ASP.NET MVC + Identity (Wyłączenie możliwości logowania się)

0

Witam

Napisałem aplikację webową z wykorzystaniem Microsoft Identity
w aplikacji są klasy z atrybutem [Authorize], [AllowAnonymous].

Chciał bym teraz uruchomić na serwerze IIS drugą instancję aplikacji ale w pliku Startup.cs
wyłączyć ConfigureAuth(app);

        public void Configuration(IAppBuilder app)
        {
            //ConfigureAuth(app);
        }

w celu zablokowania możliwości logowania się a jednocześnie uniemożliwić dostęp do akcji edycji, dodawania, usuwania itp.

Czy dobrze kombinuję? O ile są ustawione atrybuty Authorize.

Dzięki.

0

Po prostu zobacz jak to będzie działać. Wydaje mi się ze tak tego nie osiągniesz, ale nie jestem pewny.

0

czekaj, co?

Jeżeli chcesz wywalić możliwość logowania, to pewnie po prostu wywal endpoint do logowania, a dokładniej metodę signIn od usermanagera - i tyle.

0

Wykombinowałem tak:
w IIS w Application Settings dodałem parametr Test i ustawiłem go na wartość "OK"
w pliku startup.cs dodałem warunek

        public void Configuration(IAppBuilder app)
        {
            if(WebConfigurationManager.AppSettings["Test"] is "OK")
            {
                ConfigureAuth(app);
            }
        }

jesli warunek jest prawdziwy mogę się zalogować i jest OK jeśli nie to dostaję komunikat

500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed.

wywołanie akcji wymagającej autoryzacji otrzymuje komunikat

401 - Unauthorized: Access is denied due to invalid credentials. You do not have permission to view this directory or page using the credentials that you supplied.

Co o tym sądzicie?

0

Brzmi jak jakieś straszne kombinacje.
Napisz lepiej po ludzku co chcesz osiągnąć.

0

FrontEnd - tylko przeglądanie zawartości
BackEnd - z możliwością logowania się

dwa sajty w IIS-ie

0

Dalej mi to nic nie mówi.

Napisz jakiś normalny scenariusz w którym potrzebne są ci te 2 site'y.

0

Chodzi mi o to że strona z dostępem publicznym ma być bez możliwości logowania się tylko przeglądanie
natomiast po stronie sieci WAN mam mieć możliwość logowania się edycji dodawania, usuwania itp..

Wymyśliłem sobie w IIS dwa sajty ( public i private, jeden sajt z dostępem public, drugi dostęp tylko z sieci lokalnej)

W sajcie Private z poziomu IIS dodałem zmienną Private o wartości yes.

aplikacja sprawdza czy zmienna Private ma wartość Yes

        public void Configuration(IAppBuilder app)
        {
            if(WebConfigurationManager.AppSettings["Private"] is "Yes")
            {
                ConfigureAuth(app);
            }
        }

co powoduje że jest możliwość zalogowania się do aplikacji.

Jest mały problem ponieważ po ponownym wgraniu aplikacji dodana zmienna z poziomu IIS jest kasowana i są tylko zmienne zdefiniowane w web.config.czyli za każdym razem muszę dodawać zmienną i ustawiać jej wartość.

Pozdrawiam.

0

A gdyby do niektórych endpointów dopuszczać tylko IP z whitelisty (z prywatnej sieci)? Wtedy zamiast dwóch instancji aplikacji, to dodałbyś filtr w Middleware.

Tutaj jest jak to wygląda w Corze

https://docs.microsoft.com/en-us/aspnet/core/security/ip-safelist?view=aspnetcore-2.1

Ale nie wiem czy nie można byłoby IP spoofa tu walnąć, chociaż podobno twój ISP powinien to ogarnąć. Pytaj jakiegoś security experta :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1