J'ai une application Windows Forms qui sert de sorte de module d'administration pour une application Web ASP.NET. L'application Web dessert plusieurs pays et des dossiers sont créés lorsque de nouveaux pays sont ajoutés aux données de l'application.Comment créer des dossiers et spécifier des autorisations d'accès sur eux en même temps?
Malheureusement les pays nouvellement ajoutés, je INTRODUISE une exception à l'application Web lorsque je vais essayer d'écrire des fichiers dans les dossiers:
System.UnauthorizedAccessException: Access to the path 'C:\...' is denied.
Avec l'application Web en utilisant ASP.NET l'usurpation d'identité, il est évident que l'utilisateur IIS par défaut (MACHINENAME \ IUSR_MACHINENAME) n'a aucune autorisation pour écrire dans le dossier.
Comment accorder l'autorisation à l'utilisateur IIS par défaut lors de la création du dossier?
Je comprends que
System.IO.Directory.CreateDirectory(string path, DirectorySecurity directorySecurity)
devrait le faire, mais je ne comprends pas comment spécifier le journal sur le nom de l'objet DirectorySecurity
.
Ce n'est pas une bonne solution, car le répertoire a d'abord que les autorisations par défaut, qui sont ensuite remplacés. En principe, il est possible de détourner le répertoire en changeant son propriétaire pour verrouiller le créateur d'origine. Pour un exemple de la façon de spécifier DirectorySecurity dans le cadre de CreateSubDirectory, voir http://stackoverflow.com/questions/1532014/file-permissions-do-not-inherit-directory-permissions –