Pergunta

Eu escrevi código para conjunto de permissões da pasta. Função que desenvolvi foi

public void SetPermission(string user,FileSystemRights rights)
{
    DirectoryInfo dInfo = new DirectoryInfo(folderPath);
    DirectorySecurity oDirectorySecurity = new DirectorySecurity();

    oDirectorySecurity.AddAccessRule(new FileSystemAccessRule(user, rights, AccessControlType.Allow));
    dInfo.SetAccessControl(oDirectorySecurity);
}

Esta função está funcionando bem a permissão conjunto para o usuário. Mas quando eu verificar pasta Propriedades -> Segurança, o usuário adicionado. Mas nenhuma permissão é verificada na caixa de seleção dialogbox aberta Avançado. Nesta caixa Eu posso ver a permissão, que eu definir para o usuário.

Assim, a minha pergunta é por que não há nenhuma caixa de seleção seleced na guia segurança, mas ele está lá na guia Avançado?

Por favor me ajude !!!!!!

Foi útil?

Solução

Eu corri para isso também. Parece ser uma coisa patch Service.

Você pode ler como eu fixa-lo em http: // jspot.jerryhanel.com/2009/01/08/c-filedirectory-permissions/

A versão curta: Você tem que definir um sinalizador para todos os ACLs para todos os usuários. Sim ... é feio. E quando você adiciona Service Pack 3, as marcas de seleção vá embora de novo. Se alguém tiver uma solução mais limpa do que isso, por favor me avise.

Eu tenho o código para isso no meu site.

Atualizar :. O URL aponta agora para o novo site

Outras dicas

Pode ajudar a usar dInfo.GetAccessControl para inicializar oDirectorySecurity. Você também pode tentar chamar oDirectorySecurity.SetOwner.

Às vezes, as permissões só aparecem em avançado se não forem aplicadas a para objetos corretos. Tente definir os sinalizadores de herança / Propigation em seu objeto FileSystemAccessRule.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top