Je dois tester si un utilisateur peut écrire dans un dossier avant de tenter de le faire.
J'ai implémenté la méthode suivante (en C# 2.0) qui tente de récupérer les autorisations de sécurité pour le dossier en utilisant la méthode suivante Directory.GetAccessControl() méthode.
private bool hasWriteAccessToFolder(string folderPath)
{
try
{
// Attempt to get a list of security permissions from the folder.
// This will raise an exception if the path is read only or do not have access to view the permissions.
System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(folderPath);
return true;
}
catch (UnauthorizedAccessException)
{
return false;
}
}
Lorsque j'ai cherché sur Google comment tester l'accès en écriture, rien de tel n'est apparu et il semblait très compliqué de tester les permissions dans Windows. Je crains de trop simplifier les choses et que cette méthode ne soit pas robuste, même si elle semble fonctionner.
Ma méthode pour tester si l'utilisateur actuel a un accès en écriture fonctionnera-t-elle correctement ?
14 votes
C'est ne pas avoir accès à voir les permissions sont-elles vraiment les mêmes que celles qui interdisent d'y écrire ?