Alteração em pastas com permissão somente leitura - via software
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
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
Curtidas 0
Respostas
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
- 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
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!
Sua dica era exatamente o que eu estava procurando, porém não conhecia o nome "impersonficação".
Problema resolvido!
GOSTEI 0
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!!
Forte abraço e bons códigos!!!
PS. Estarei encerrando o post!!
GOSTEI 0