HttpWebRequest.UnsafeAuthenticatedConnectionSharing Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość wskazującą, czy zezwalać na szybkie udostępnianie połączeń uwierzytelnionych przy użyciu protokołu NTLM.
public:
property bool UnsafeAuthenticatedConnectionSharing { bool get(); void set(bool value); };
public bool UnsafeAuthenticatedConnectionSharing { get; set; }
member this.UnsafeAuthenticatedConnectionSharing : bool with get, set
Public Property UnsafeAuthenticatedConnectionSharing As Boolean
Wartość właściwości
true
, aby zachować otwarte uwierzytelnione połączenie; w przeciwnym razie false
.
Uwagi
Ostrożność
WebRequest
, HttpWebRequest
, ServicePoint
i WebClient
są przestarzałe i nie należy ich używać do tworzenia nowych aplikacji. Zamiast tego użyj HttpClient.
Wartość domyślna tej właściwości to false
, co powoduje zamknięcie bieżącego połączenia po zakończeniu żądania. Aplikacja musi przechodzić przez sekwencję uwierzytelniania za każdym razem, gdy wysyła nowe żądanie.
Jeśli ta właściwość jest ustawiona na true
, połączenie używane do pobierania odpowiedzi pozostaje otwarte po wykonaniu uwierzytelniania. W takim przypadku inne żądania, które mają tę właściwość ustawioną na true
mogą używać połączenia bez ponownego uwierzytelniania. Innymi słowy, jeśli połączenie zostało uwierzytelnione dla użytkownika A, użytkownik B może ponownie użyć połączenia A; żądanie użytkownika B jest realizowane na podstawie poświadczeń użytkownika A.
Ostrożność
Ponieważ aplikacja może używać połączenia bez uwierzytelniania, należy upewnić się, że w systemie nie ma luki w zabezpieczeniach administracyjnych podczas ustawiania tej właściwości na wartość true
. Jeśli aplikacja wysyła żądania dla wielu użytkowników (personifikuje wiele kont użytkowników) i korzysta z uwierzytelniania w celu ochrony zasobów, nie należy ustawiać tej właściwości na true
, chyba że używasz grup połączeń zgodnie z poniższym opisem.
Warto rozważyć włączenie tego mechanizmu, jeśli występują problemy z wydajnością, a aplikacja działa na serwerze sieci Web ze zintegrowanym uwierzytelnianiem systemu Windows.
Włączenie tego ustawienia powoduje otwarcie systemu na zagrożenia bezpieczeństwa. Jeśli właściwość UnsafeAuthenticatedConnectionSharing zostanie ustawiona na true
należy podjąć następujące środki ostrożności:
Użyj właściwości ConnectionGroupName do zarządzania połączeniami dla różnych użytkowników. Pozwala to uniknąć potencjalnego użycia połączenia przez aplikacje nieuwierzytelnione. Na przykład użytkownik A powinien mieć unikatową nazwę grupy połączeń, która różni się od użytkownika B. Zapewnia to warstwę izolacji dla każdego konta użytkownika.
Uruchom aplikację w chronionym środowisku, aby uniknąć możliwych luk w zabezpieczeniach połączeń.
Jeśli kontrolujesz serwer zaplecza, możesz rozważyć wyłączenie trwałości uwierzytelniania. Zwiększa to wydajność do mniejszego stopnia, ale jest bezpieczniejsza. Aby uzyskać więcej informacji, zobacz AuthPersistence.
Nuta
Jeśli zarówno PreAuthenticate, jak i UnsafeAuthenticatedConnectionSharing są ustawione na true
, każde żądanie jest wysyłane przy użyciu połączenia z niebezpiecznej puli, ale z nagłówkiem autoryzacji.