Alteração em pastas com permissão somente leitura - via software

Delphi

29/11/2012

Galera, boa noite.Como sempre consegui resolver meus problemas nos posts existentes, nunca precisei escrever. Porém não consegui achar respostas à minha dúvida, se é ou não possível a solução.
Tenho um sistema que gera alguns documentos (doc, pdf ...) e eu os armazeno em pastas dentro de um servidor.Porém, não existe controle nenhum nas permissões de acesso via rede à estas pastas.Existe um usuário padrão criado em cada terminal (e no servidor) somente para o sistema efetuar o acesso a estas pastas para gravação destes documentos.Eu desejo que os usuários tenham acesso somente leitura destas pastas compartilhadas, e que o sistema tenha acesso de leitura/escrita às mesmas.Penso que teria que fazer uma conexão na rede via software.
É possível realizar essa tarefa? Consigo fazer isso sem um controlador de domínio (eu não sei como configurar um, por isso pretendo achar uma solução sem a utilização do mesmo)?Se sim, como faço essa autenticação de rede via software?
Desde já agradeço.
Rodrigo
Rodrigo Martins

Rodrigo Martins

Curtidas 0

Respostas

Deivison Melo

Deivison Melo

29/11/2012

Verifique o artigo sobre:

- Login Integrado ao Active Directory

http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=1267

Ou pesquise por impersonificação...

Segue abaixo uma função de impersonificação:

//Inicio
function Impersonificacao(const Usuario, Senha,
Dominio: string): boolean;
var
LogonType: integer;
LogonProvider: integer;
TokenHandle: THandle;
begin
LogonType := LOGON32_LOGON_INTERACTIVE;
LogonProvider := LOGON32_PROVIDER_DEFAULT;
if Trim(Dominio) = '' then
Result := LogonUser(Pchar(Usuario), nil, pchar(senha), LogonType, LogonProvider, TokenHandle)
else
Result := LogonUser(Pchar(Usuario), Pchar(Dominio), pchar(senha), LogonType, LogonProvider, TokenHandle);
if Result then
begin
Result := ImpersonateLoggedOnUser(TokenHandle);
CloseHandle(TokenHandle);
end;
end;
//fim

GOSTEI 0
Rodrigo Martins

Rodrigo Martins

29/11/2012

Deivison, agradeço sua atenção.

Sua dica era exatamente o que eu estava procurando, porém não conhecia o nome "impersonficação".

Problema resolvido!
GOSTEI 0
Deivison Melo

Deivison Melo

29/11/2012

Ok, meu amigo, qualquer anormalidade por favor me comunique!

Forte abraço e bons códigos!!!

PS. Estarei encerrando o post!!
GOSTEI 0
POSTAR