2014-12-16 2 views
3

파일 권한을 수정하고 666/777 등의 권한에 대해 말하고 있습니다. 즉, tio가 ANY에서 666으로 파일 사용 권한을 변경하는 방법입니다. 목표 ASP.NET MVC 웹 응용 프로그램에서 업로드 된 파일의 권한을 변경하고 있습니다.C# - 파일 사용 권한 수정 ASP.NET MVC

public string Uploadfile(HttpRequestBase currentRequest) 
    { 
     string fileName = ""; 
     for (int i = 0; i < currentRequest.Files.Count; i++) 
     { 
      if (currentRequest.Files[i].ContentLength > 0) 
      { 

       string strFileName = Guid.NewGuid().ToString() + 
            Path.GetExtension(currentRequest.Files[i].FileName); 
       currentRequest.Files[i].SaveAs(HttpContext.Current.Server.MapPath("/Upload/Task/" + strFileName)); 

       fileName = strFileName; 
      } 
     } 
     return fileName; 
    } 
} 

답변

1

당신은 그런

FileSecurity fSecurity = File.GetAccessControl(filePath); 

당신이 FileSystemAccessRule

FileSystemAccessRule rule = new FileSystemAccessRule(SPECIFIC_USER, FileSystemRights.FullControl, AccessControlType.Allow); 
을 만들 이것이 당신이 파일의 FileSecurity 년대를 얻는 방법입니다 예를 들어 File.SetAccessControl 방법

public static void SetAccessControl(
    string path, 
    FileSecurity fileSecurity 
) 

봐야한다 ,210

그리고 당신은 FileSystemRights 가능한 값
http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesystemrights(v=vs.110).aspx

+0

이 코드 읽기 및 쓰기 수 있지만 실행을 허용하지 않습니다

자세한 내용은 여기 MSDN에서 사용할 수 있습니까? – user2120121

+0

FullControl에는 실행이 포함됩니다. FileSystemRights에 가능한 값에 대한 링크를 포함하도록 답변을 업데이트했습니다. –

0

Windows 파일 보안 유닉스 다르게 작동하고, 666

chmod를 위해 직접 해당이없는의 파일의 FileSecurity

File.SetAccessControl(filePath, fSecurity); 

목록이 규칙을 추가

찾고있는 방법은 파일 경로와 FileSecurity 개체를 사용하는 File.SetAccessControl입니다. '666'에 가장 근접한 것은 'Everyone'사용자 계정에 읽기/쓰기 권한을 할당하는 것입니다.

이렇게하려면 File.GetAccessControl을 사용하여 파일에 대한 현재 사용 권한을 검색하고 방금 검색 한 FileSecurity 개체에 대한 새 읽기/쓰기 권한을 추가 한 다음 SetAccessControl을 사용하여 새 사용 권한을 작성합니다. http://msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol%28v=vs.110%29.aspx