HttpWebRequest.UnsafeAuthenticatedConnectionSharing Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que indica se o compartilhamento de conexão autenticada por NTLM de alta velocidade deve ser permitido.
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
Valor da propriedade
true
manter a conexão autenticada aberta; caso contrário, false
.
Comentários
Cuidado
WebRequest
, HttpWebRequest
, ServicePoint
e WebClient
estão obsoletos e você não deve usá-los para um novo desenvolvimento. Em vez disso, use HttpClient.
O valor padrão dessa propriedade é false
, o que faz com que a conexão atual seja fechada após a conclusão de uma solicitação. Seu aplicativo deve passar pela sequência de autenticação sempre que emitir uma nova solicitação.
Se essa propriedade estiver definida como true
, a conexão usada para recuperar a resposta permanecerá aberta após a autenticação ter sido executada. Nesse caso, outras solicitações que têm essa propriedade definida como true
podem usar a conexão sem autenticar novamente. Em outras palavras, se uma conexão tiver sido autenticada para o usuário A, o usuário B poderá reutilizar a conexão de A; A solicitação do usuário B é atendida com base nas credenciais do usuário A.
Cuidado
Como é possível que um aplicativo use a conexão sem ser autenticado, você precisa ter certeza de que não há nenhuma vulnerabilidade administrativa em seu sistema ao definir essa propriedade como true
. Se o aplicativo enviar solicitações para vários usuários (representar várias contas de usuário) e depender da autenticação para proteger recursos, não defina essa propriedade como true
a menos que você use grupos de conexões, conforme descrito abaixo.
Talvez você queira considerar habilitar esse mecanismo se você estiver tendo problemas de desempenho e seu aplicativo estiver em execução em um servidor Web com autenticação integrada do Windows.
Habilitar essa configuração abre o sistema para riscos de segurança. Se você definir a propriedade UnsafeAuthenticatedConnectionSharing para true
certifique-se de tomar as seguintes precauções:
Use a propriedade ConnectionGroupName para gerenciar conexões para usuários diferentes. Isso evita o uso potencial da conexão por aplicativos não autenticados. Por exemplo, o usuário A deve ter um nome de grupo de conexão exclusivo diferente do usuário B. Isso fornece uma camada de isolamento para cada conta de usuário.
Execute seu aplicativo em um ambiente protegido para ajudar a evitar possíveis explorações de conexão.
Se você controlar o servidor de back-end, como alternativa, poderá considerar desativar a persistência de autenticação. Isso aumenta o desempenho em menor grau, mas é mais seguro. Para obter mais detalhes, consulte AuthPersistence.
Nota
Se PreAuthenticate e UnsafeAuthenticatedConnectionSharing estiverem definidos como true
, cada solicitação será enviada usando uma conexão do pool não seguro, mas com um cabeçalho de Autorização.