2009-07-02 20 views
5

Potrzebuję ograniczyć dostęp usługi internetowej .asmx do określonych adresów IP. Sądzę, że mógłbym dodać zakodowane na sztywno czek do każdej metody, ale wydaje się, że to koszmar utrzymania kodu. Czy mogę utworzyć wpis konfiguracji internetowej lub ustawienie IIS 6, które można zastosować do pliku .asmx?Ogranicz dostęp usługi internetowej ASMX do określonych adresów IP.

+0

Czy masz dostęp do serwera? –

+0

Tak. Jasne. Działa IIS 6. – DMCS

+0

IIS obsługuje ograniczanie dostępu przez adres IP, a także inne rzeczy. –

Odpowiedz

9

W Menedżerze usług IIS 6.0 kliknij prawym przyciskiem myszy plik .asmx.

Przejdź do zakładki File Security i kliknij przycisk Edit w opcjach adresu IP i nazwy domeny.

Kliknij przycisk radiowy "Odmowa dostępu", a następnie dodaj listę adresów IP na białej liście.

Dla IIS 7.5, jest to trochę trudne, ponieważ plik nie jest wyświetlany w panelu nawigacyjnym. Musisz przejść do zakładki Widok treści (w dolnej części okna), kliknąć prawym przyciskiem myszy na pliku i wybrać Przełącz do widoku funkcji. Otwórz adres IP i ograniczenie domeny, kliknij Edytuj ustawienia funkcji i wybierz odmowę nieokreślonych hostów. Teraz możesz dodawać autoryzacje, klikając Dodaj zezwolenie na wpis.

+2

Należy pamiętać, że zabezpieczenia IP to funkcja, która nie jest instalowana fabrycznie w systemie Windows 7/IIS 7.5. Będziesz musiał go dodać: http://www.iis.net/configreference/system.webserver/security/ipsecurity/add – HarryTuttle

+0

Dobry połów ... Nie wiedziałem, że musisz dodać to osobno. – Moose

-1

Dodaj sekcję niestandardową do pliku web.config, a następnie przeszukaj sekcję dla białej listy adresów IP.

+0

Mam sekcji przechowywania konfiguracji, ale znowu, nie chcę, aby napisać logikę kontroli IP dla każdej metody. Szukam czegoś bardziej eleganckiego. Ustawienia IIS lub coś w rodzaju FormsAuthentication, ale tylko dla tego jednego pliku jest ograniczony do adresów IP, które chcę. – DMCS

+0

Dodałem sposób IIS w innej odpowiedzi, ale pozostanę z tą. Utrzymuje ona twoją białą listę w web.config, gdzie jest więcej konfiguracji twojej witryny, i pozwala ci być bardziej elastycznym, jeśli chcesz czegoś bardziej doświadczonego niż biała lista lub na czarnej liście. Myślę, że byłoby to bardziej eleganckie rozwiązanie. Ponadto trasa metadanych usług IIS może zostać utracona, jeśli ktoś zmieni coś w drzewie i nadpisze. – Moose

+0

Problem polega na tym, że kod w każdym wywołaniu usługi sieciowej jest szkodliwy w utrzymaniu i przechowywany we wszystkich przyszłych dodatkach do pliku .asmx przez innych programistów (co niewątpliwie zapomni). Biała lista w IIS to najlepszy sposób na uproszczenie, więc jeśli nastąpi zmiana, cały nowy zestaw kodów nie musi być wysyłany za pośrednictwem QA (kosztowny proces pod względem czasu i zasobów), a następnie przestawiany (nie tak drogie jako QA, ale wciąż marnuje czas ludzi). Tak więc szybkie zadanie polega na zachowaniu ich na białej liście IIS 6. :) – DMCS

Powiązane problemy