Wpis z mikrobloga

#aspnet #aspnetcore #programowanie #itsecurity

Zamierzam zmodyfikować trochę mechanizm logowania w mojej aplikacji ASP.net Core i w związku z tym może się pojawić możliwość, że coś przeoczę i w wyniku błędu niepowołane osoby uzyskają dostęp do nieprzeznaczonego dla nich Controllera. Słyszałem, że dobrym pomysłem jest używanie Unit Testów, do automatycznego testowania najistotniejszych części mojej aplikacji, z tym że nigdy czymś takim się nie zajmowałem.

Wyobrażam sobie to mniej więcej tak, że skrypt loguje się na jakieś anonimowe konto bez uprawnień, próbuje uzyskać dostęp do poszczególnych kontrolerów i zwraca wynik czy udało mu się czy też nie.

Czy do ww. funkcjonalności używa się w ogóle Unit Testów? Jeśli tak to w jaki sposób mogę zasymulować logowanie na jakieś konto w aplikacji?

Mechanizm logowania opiera się na ASP.net Identity, controller'y wymagające logowania mają atrybut [Authorize].
  • 4
  • Odpowiedz
@Wunderwafel: nie wiem czy jest sens w zabawę tego typu skoro bazujesz na identity i masz to opatrzone authorizem. chyba że to bardzo głęboka modyfikacja, jak rozszerzasz applicationUser itp to bym sobie odpuścił
  • Odpowiedz
@Wunderwafel: To nie są testy jednostkowe. To już podchodzi pod testy REST API.
Potrzebujesz narzędzia, w którym przygotowujesz scenariusz - Logowanie -> Kontrolery -> Assert, czy uzyskałeś dostęp czy nie.

Może Postman da radę (To jedyna rzecz, jaka mi przychodzi do głowy. Jeśli nie da rady, to szukaj czegoś innego [Albo pisz sam oddzielną aplikację do testowania.])
  • Odpowiedz