Abrir / fechar conexão com UNC sem credenciais
-
05-07-2019 - |
Pergunta
Eu tenho um aplicativo cliente .NET que intermitentemente perde a conexão a um compartilhamento UNC onde o usuário é ou em um domínio ou tem uma conta local com as mesmas credenciais no servidor. Ambos SO e Google têm abundância de exemplos usando LogonUser e WNetAddConnection via P-Invoke, mas ambos exigem a senha do usuário. Todos nosso aplicativo precisa fazer é abrir explicitamente uma conexão para um UNC, copiar um arquivo, e explicitamente fechar a conexão sem fornecer credenciais - em outras palavras, usando as credenciais atuais. Alguém pode me apontar na direção certa sobre como fazer isso em C #?
Solução
De acordo com a documentação do WNetAddConnection2 função, você pode passar nulo para o nome de usuário para usar o contexto de usuário do processo atual. Eu assumo isso significa que ele vai usar o contexto da conta que executa o aplicativo cliente de segurança. MSDN também diz que passar nulo para a senha para usar a senha associada a qualquer nome de usuário é especificado.
Talvez deixar ambos para Null será apenas magicamente trabalho.