2009-12-24 3 views
1

J'essaie de protéger un dossier et les fichiers qu'il contient.
Je suis en mesure de protéger le dossier lui-même, de sorte que si quelqu'un clique dessus, il recevra un message: "Vous n'êtes pas actuellement autorisé à accéder à ce dossier!"Protégez un seul fichier!

Mais je peux toujours accéder aux fichiers dans ce dossier. Par exemple, si quelqu'un connaît le nom d'un fichier dans le dossier, il peut taper D: \ ProtectedFolder \ pdffile.pdf et il peut ouvrir le fichier!

Alors, ma question est la suivante:

Puis-je protéger un seul fichier dans le dossier?

Ceci est la fonction que j'utilise pour le verrouillage du dossier:

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 

Merci!

+1

appartient à superuser/serverfault. Nous traitons uniquement des questions liées à la programmation ici. –

+0

Mm, il y a beaucoup de questions liées à la configuration Apache ici. J'aurais tendance à le laisser ici. @comii, avec quel serveur travaillez-vous? –

+0

@Pekka Apache? Pour VB.NET? – ceejayoz

Répondre

2

Vous devrez également refuser FileSystemRights.Read si vous voulez empêcher cela. Et techniquement, vous devez vous assurer que les fichiers héritent leurs droits du dossier.

0

Spécifiez FileShare.None pour File.Open. Vous pouvez voir ma mise en œuvre C# de here avec le code source complet. Convertissez-le en VB.NET si vous le souhaitez.

C'est le message que vous recevez lorsque vous essayez d'ouvrir un fichier verrouillé par l'application:

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

Je pense que ce que vous êtes après.

Questions connexes