GetDirectories appel à msi CustomAction lance exception de sécurité uniquement lorsque tous les utilisateurs

StackOverflow https://stackoverflow.com/questions/3808832

Question

J'ai une action personnalisée que j'utilise pour déployer des fichiers qui sont assis à côté du msi dans le package de transfert. Mon action personnalisée est passé le chemin msi via le paramètre OriginalDatabase et je vérifie s'il y a un dossier à côté. Rien de trop fou, mais était une douleur dans le cul à comprendre.

Installation un ou plusieurs utilisateurs à partir de fichiers copiés fonctionne localement comme un champion. Installation simple utilisateur lors de l'exécution du setup.exe à partir d'un partage réseau fonctionne très bien mais quand j'installe tous les utilisateurs d'un partage réseau, je reçois une exception de sécurité.

La ligne en question est la suivante:

DirectoryInfo[] subdirectories = workingDirectoryInfo.GetDirectories("Foo");

L'action personnalisée fonctionne avec SecurityAction.Demand donc je devrais avoir tous les accès dont j'ai besoin.

Toute quiconque d'entrée peut fournir est grandement appréciée.

Merci, Casey

Était-ce utile?

La solution

Je crois que lorsque vous installez le côté serveur par utilisateur n'a pas besoin d'élever pour faire la transaction afin qu'il emprunte l'identité de l'utilisateur interactif et peut accéder aux fichiers. Lorsque vous installez pour tous les utilisateurs, il doit élever maintenant il est essentiellement en cours d'exécution en tant que système qui utiliserait le compte de la machine pour accéder aux fichiers et boum, vous obtenez une erreur de permissions.

Puis-je demander pourquoi ces fichiers ne sont pas dans votre programme d'installation? N'y at-il une certaine façon, vous pouvez les inclure afin que vous ne devez pas avoir l'action personnalisée? Sinon, vous pourriez avoir à écrire une action personnalisée qui détecte la OriginalDatabase est sur un partage réseau et d'empêcher l'installation à moins que l'utilisateur copie tous les fichiers vers le bas avant d'exécuter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top