跟小D每日学口语

asp.net 设置文件权限

给文件权限everyone

 

代码
以下是1.0的方法,调用Windows   API   
  
using   Microsoft.Win32.Security;   
 
 
  private   Boolean   CreateDir(String   strSitePath,   String   strUserName) 
  {   
       Boolean   bOk;   
      
try  
      {   
        Directory.CreateDirectory(strSitePath);   
      SecurityDescriptor   secDesc   
=   SecurityDescriptor.GetFileSecurity(strSitePath,SECURITY_INFORMATION.DACL_SECURITY_INFORMATION);   
           Dacl   dacl   
=   secDesc.Dacl;   
           Sid   sidUser   
=   new   Sid   (strUserName);   
      
    
         
//   allow:   folder,   subfolder   and   files   
         
//   modify   
        dacl.AddAce(new   AceAccessAllowed(sidUser,   AccessType.GENERIC_WRITE   |   AccessType.GENERIC_READ   |   AccessType.DELETE   |   AccessType.GENERIC_EXECUTE   ,   AceFlags.OBJECT_INHERIT_ACE   |   AceFlags.CONTAINER_INHERIT_ACE));   
                                
    
                              
//   deny:   this   folder   
                              
//   write   attribs   
                              
//   write   extended   attribs   
                              
//   delete   
                              
//   change   permissions   
                              
//   take   ownership   
     DirectoryAccessType   DAType   =   DirectoryAccessType.FILE_WRITE_ATTRIBUTES   |   DirectoryAccessType.FILE_WRITE_EA   |   DirectoryAccessType.DELETE   |   DirectoryAccessType.WRITE_OWNER   |   DirectoryAccessType.WRITE_DAC;   
            AccessType   AType   
=   (AccessType)DAType;   
            dacl.AddAce   (
new   AceAccessDenied   (sidUser,   AType));   
      
      secDesc.SetDacl(dacl);   
     secDesc.SetFileSecurity(strSitePath,   SECURITY_INFORMATION.DACL_SECURITY_INFORMATION);   
      bOk   
=   true;   
     }  
     catch   
     {   
       bOk   
=   false;   
     }   
     
return   bOk;   
  }   
    
  
2.0的,里面的方法是2.0中新加的:   
  System.IO.DirectoryInfo   dInfo   
=   new   System.IO.DirectoryInfo("Your   Forlder   Path   here");   
        System.Security.AccessControl.DirectorySecurity   dSecurity   
=   new   System.Security.AccessControl.DirectorySecurity();   
        dSecurity.AddAccessRule(
new   System.Security.AccessControl.FileSystemAccessRule("Everyone",   System.Security.AccessControl.FileSystemRights.WriteData,   System.Security.AccessControl.AccessControlType.Allow));   
         dInfo.SetAccessControl(dSecurity);   

 

 在网上找了半天也只找到这个代码,而且只能用加everyone权限。有哪位知道告诉我一声,先谢了!

 

posted on 2010-09-14 18:12  achao  阅读(741)  评论(0)    收藏  举报

导航