Το όρισμα BypassList του System.Net.WebProxy περιέχει κανονικές εκφράσεις. Ένα μοτίβο όπως το *.office.example δεν είναι έγκυρο, επειδή ο αρχικός αστερίσκος δεν έχει προηγούμενη έκφραση για επανάληψη.

Για αιτήματα HTTP και HTTPS προς το office.example και τους υποτομείς του, μια διαμόρφωση PowerShell μπορεί να χρησιμοποιήσει:

$bypass = @('^https?://([a-z0-9-]+\.)*office\.example(:[0-9]+)?$')
$proxy = [System.Net.WebProxy]::new(
    'http://proxy.example:8080',
    $false,
    [string[]]$bypass
)

Τα διαφυγόντα σημεία αντιστοιχούν σε κυριολεκτικά σημεία. Η επαναλαμβανόμενη ομάδα ετικέτας ονόματος κεντρικού υπολογιστή επιτρέπει και τον βασικό τομέα και ονόματα κάτω από αυτόν. Οι άγκυρες κρατούν ένα όνομα όπως office.example.other.test έξω από αυτόν τον κανόνα. Οι συμβολοσειρές PowerShell με απλά εισαγωγικά διατηρούν τις ανάστροφες καθέτους που χρησιμοποιεί η έκφραση.

Η τρέχουσα υλοποίηση .NET αντιστοιχίζει αυτές τις εκφράσεις με το σχήμα, το όνομα κεντρικού υπολογιστή και τη μη προεπιλεγμένη θύρα του προορισμού. Δεν περιλαμβάνει τη διαδρομή του αιτήματος ούτε τη συμβολοσειρά ερωτήματος. Επομένως η προαιρετική ομάδα θύρας επιτρέπει και μη προεπιλεγμένες θύρες· αφαιρέστε την ή περιορίστε την αν η πολιτική απαιτεί συγκεκριμένη υπηρεσία.

Το BypassProxyOnLocal είναι false σε αυτό το παράδειγμα, ώστε η πολιτική κανονικής έκφρασης να εξετάζεται χωριστά από εκείνη τη ρύθμιση παράκαμψης. Συνδέστε το αντικείμενο μεσολάβησης που προκύπτει με τον πελάτη HTTP που πρέπει να το χρησιμοποιήσει. Για μια επιτρεπόμενη δοκιμή δημόσιου URL εκτός του τομέα παράκαμψης, μια καταχώρηση HTTP από τη HTTP proxy list μπορεί να παρέχει τη διεύθυνσή του, χωρίς διαμορφωμένο λογαριασμό μεσολάβησης.

Χρησιμοποιήστε το IsBypassed με αντιπροσωπευτικές τιμές Uri για να εξετάσετε την απόφαση δρομολόγησης: τον βασικό τομέα, έναν υποτομέα, έναν άσχετο εξωτερικό κεντρικό υπολογιστή και ένα παραπλανητικό μακρύτερο επίθημα. Αποτέλεσμα true σημαίνει ότι επιλέχθηκε άμεση πρόσβαση· δεν αποδεικνύει ότι ο άμεσος προορισμός είναι προσβάσιμος.

Σχετικά άρθρα