2009-12-24 6 views
1

폴더와 그 안의 파일을 보호하려고합니다.
누군가 폴더를 클릭하면 메시지가 표시 될 수 있도록 폴더 자체를 보호 할 수 있습니다. "현재이 폴더에 액세스 할 권한이 없습니다!"하나의 파일을 보호하십시오!

하지만 여전히 해당 폴더의 파일에 액세스 할 수 있습니다. 예를 들어 누군가가 폴더 안에있는 파일의 이름을 알고 있다면 D : \ ProtectedFolder \ pdffile.pdf를 입력하면 파일을 열 수 있습니다!

내 질문은 :

폴더 내의 단일 파일을 보호 할 수 있습니까?

이것은 내가 폴더 잠금에 사용하는 기능은 다음과 같습니다

Public Function Lock(ByVal folder As 
String, ByVal user As String) 
     Dim FilePath As String = folder 
     Dim fs As FileSystemSecurity = File.GetAccessControl(FilePath) 
     fs.AddAccessRule(New FileSystemAccessRule(user, 
FileSystemRights.ListDirectory, 
AccessControlType.Deny)) 
     fs.AddAccessRule(New FileSystemAccessRule(user, 
FileSystemRights.FullControl, 
AccessControlType.Deny)) 
     File.SetAccessControl(FilePath, fs) 
     Return 0 

    End Function 

감사합니다!

+1

은 수퍼 유저/serverfault에 속합니다. 우리는 프로그래밍 관련 질문 만 다루고 있습니다. –

+0

음, 많은 Apache 구성 관련 질문이 여기에 있습니다. 나는 그것을 여기에 남겨 두는 경향이있다. @comii, 어떤 서버로 작업하고 있습니까? –

+0

@Pekka Apache? VB.NET의 경우? – ceejayoz

답변

2

방지하려면 FileSystemRights.Read를 거부해야합니다. 그리고 기술적으로는 파일이 폴더에서 해당 권한을 상속 받았는지 확인해야합니다.

0

File.Open에 대해 FileShare.None을 지정하십시오. 전체 소스 코드와 함께 here 내 C# 구현을 볼 수 있습니다. 원하면 VB.NET으로 변환하십시오. 나는 그 당신이 계신 것 같아요

alt text http://i35.tinypic.com/xblqjc.png

:

응용 프로그램에 의해 잠겨있는 파일을 열려고 할 때받는 메시지입니다.

관련 문제