HttpWebRequest.UnsafeAuthenticatedConnectionSharing Propriedade
Definição
Obtém ou define um valor que indica se deve ser permitido o compartilhamento de conexão de alta velocidade autenticado por NTLM.Gets or sets a value that indicates whether to allow high-speed NTLM-authenticated connection sharing.
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 para manter a conexão autenticada aberta, caso contrário, false.true to keep the authenticated connection open; otherwise, false.
Comentários
O valor padrão dessa propriedade é false , que faz com que a conexão atual seja fechada após a conclusão de uma solicitação.The default value for this property is false, which causes the current connection to be closed after a request is completed. Seu aplicativo deve passar pela sequência de autenticação toda vez que emitir uma nova solicitação.Your application must go through the authentication sequence every time it issues a new request.
Se essa propriedade for definida como true , a conexão usada para recuperar a resposta permanecerá aberta após a execução da autenticação.If this property is set to true, the connection used to retrieve the response remains open after the authentication has been performed. Nesse caso, outras solicitações que têm essa propriedade definida como true podem usar a conexão sem se autenticar novamente.In this case, other requests that have this property set to true may use the connection without re-authenticating. Em outras palavras, se uma conexão tiver sido autenticada para o usuário A, o usuário B poderá reutilizar A conexão. a solicitação do usuário B é atendida com base nas credenciais do usuário A.In other words, if a connection has been authenticated for user A, user B may reuse A's connection; user B's request is fulfilled based on the credentials of user 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 .Because it is possible for an application to use the connection without being authenticated, you need to be sure that there is no administrative vulnerability in your system when setting this property to true. Se seu aplicativo envia solicitações para vários usuários (representa várias contas de usuário) e se baseia na autenticação para proteger recursos, não defina essa propriedade como a true menos que você use grupos de conexão, conforme descrito abaixo.If your application sends requests for multiple users (impersonates multiple user accounts) and relies on authentication to protect resources, do not set this property to true unless you use connection groups as described below.
Convém considerar a habilitação desse mecanismo se seu estiver tendo problemas de desempenho e seu aplicativo estiver em execução em um servidor Web com autenticação integrada do Windows.You may want to consider enabling this mechanism if your are having performance problems and your application is running on a Web server with integrated Windows authentication.
A habilitação dessa configuração abre o sistema para riscos de segurança.Enabling this setting opens the system to security risks. Se você definir a UnsafeAuthenticatedConnectionSharing propriedade para certificar-se de ter true as seguintes precauções:If you set the UnsafeAuthenticatedConnectionSharing property to true be sure to take the following precautions:
Use a ConnectionGroupName propriedade para gerenciar conexões para usuários diferentes.Use the ConnectionGroupName property to manage connections for different users. Isso evita o uso potencial da conexão por aplicativos não autenticados.This avoids the potential use of the connection by non-authenticated applications. 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.For example, user A should have a unique connection group name that is different from user B. This provides a layer of isolation for each user account.
Execute seu aplicativo em um ambiente protegido para ajudar a evitar possíveis explorações de conexão.Run your application in a protected environment to help avoid possible connection exploits.
Se você controlar o servidor de back-end, como alternativa, poderá considerar desativar a persistência de autenticação.If you control the back-end server, as an alternative you might consider turning off authentication persistence. Isso aumenta o desempenho para um nível menor, mas é mais seguro.This increases performance to a lesser degree, but it is safer. Para obter mais detalhes, consulte AuthPersistence.For more details, see AuthPersistence.
Observação
Se PreAuthenticate e UnsafeAuthenticatedConnectionSharing for definido como true , cada solicitação será enviada usando uma conexão do pool não seguro, mas com um cabeçalho de autorização.If both PreAuthenticate and UnsafeAuthenticatedConnectionSharing are set to true, each request is sent using a connection from the unsafe pool, but with an Authorization header.