Return to Snippet

Revision: 4389
at December 4, 2007 12:55 by alemaodokiss


Updated Code
string sPath    = Path.GetDirectoryName(Application.ExecutablePath);
        string sTmpPath = sPath + "\\Temp\\"; 

        // ********* REMOVER *************
        //MessageBox.Show("Path: " + sTmpPath, "Tz0 info", MessageBoxButtons.OK, MessageBoxIcon.Information);

        if (!Directory.Exists(sTmpPath))
          Directory.CreateDirectory(sTmpPath);
            
        // Pega a segurança atual da pasta
        DirectorySecurity oDirSec = Directory.GetAccessControl(sTmpPath);   
        
        // Define o usuário Everyone (Todos)
        SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
        //SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, null);
        NTAccount oAccount = sid.Translate(typeof(NTAccount)) as NTAccount;

        oDirSec.PurgeAccessRules(oAccount);
        
        FileSystemAccessRule fsAR = new FileSystemAccessRule(oAccount, 
                                                             FileSystemRights.Modify,
                                                             InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                                                             PropagationFlags.None,
                                                             AccessControlType.Allow);

        // Atribui a regra de acesso alterada
        oDirSec.SetAccessRule(fsAR);
        Directory.SetAccessControl(sTmpPath, oDirSec);

Revision: 4388
at December 4, 2007 08:17 by alemaodokiss


Initial Code
// Pega a segurança atual da pasta
        DirectorySecurity oDirSec = Directory.GetAccessControl(sTmpPath);   
        
        // Define o usuário Everyone (Todos)
        SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
        NTAccount oAccount = sid.Translate(typeof(NTAccount)) as NTAccount;
        
        // Cria a regra de acesso permitindo Everyone gravar na pasta
        FileSystemAccessRule fsAR = new FileSystemAccessRule(oAccount, 
                                                             FileSystemRights.Write,
                                                             AccessControlType.Allow);
        // Atribui a regra de acesso alterada
        oDirSec.SetAccessRule(fsAR);

Initial URL
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=457246&SiteID=1

Initial Description
Como definir permissão de gravação para uma determinada pasta por um determinado usuário.

Initial Title
Permissão de gravação em pasta

Initial Tags

                                

Initial Language
C#