asp.net 设置文件权限

本文提供了两种在Windows环境下通过编程方式设置文件夹权限的方法。一种是使用1.0版本的方法,涉及调用Windows API并利用Microsoft.Win32.Security命名空间;另一种是2.0版本的方法,使用了System.IO和System.Security.AccessControl命名空间来更简洁地为文件夹添加everyone权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给文件权限everyone

 

ExpandedBlockStart.gif代码
以下是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权限。有哪位知道告诉我一声,先谢了!

 

转载于:https://www.cnblogs.com/achao201/archive/2010/09/14/1826190.html

ASP.NET中,可以通过角色和授权管理来设置用户权限。以下是一些在ASP.NET设置用户权限的最佳实践: 1.定义用户角色和权限 在程序中定义不同的用户角色和权限,例如超级管理员、管理员、普通用户等,以及他们可以使用的功能列表。可以使用ASP.NET的角色管理机制来定义用户角色,使用Web.config文件来定义用户权限。 2.使用身份验证确定用户角色 在程序启动时,通过身份验证确定当前用户的角色。可以使用ASP.NET的身份验证机制,例如Forms身份验证或者Windows身份验证,来验证用户的身份。 3.在程序中进行权限检查 在程序中对每个功能进行权限检查,检查当前用户是否具有执行该功能的权限。可以使用ASP.NET的授权管理机制来进行权限检查。可以使用AuthorizeAttribute对控制器或者Action进行授权,只有具有相应权限的用户才能够访问。 4.禁用没有权限的功能 如果当前用户没有权限执行该功能,禁用该功能或者显示提示信息。可以使用ASP.NET的控件或者JavaScript代码来禁用没有权限的功能。 5.使用安全编码实践 使用安全编码实践来防止安全漏洞和攻击。例如,使用参数化查询来防止SQL注入攻击,使用加密算法来保护敏感数据,使用防止跨站点脚本攻击(XSS)等安全编码实践。 总之,在ASP.NET设置用户权限需要综合考虑不同的方面,包括身份验证、角色和授权管理、安全编码实践等。可以参考ASP.NET的官方文档和示例代码来了解如何在ASP.NET中更好地设置用户权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值