IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Autorisation d'accès aux répertoires du disque C:


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 49
    Par défaut Autorisation d'accès aux répertoires du disque C:
    Je suis en train de développer une application qui liste les fichiers d'exécution dans un répertoire choisi par l'utilisateur.
    Tout marchait bien jusqu'à ce que je fasse une modification consistant à ce que l'utilisateur puisse choisir le répertoire dans lequel doit s'effectuer la recherche des fichiers. A ce moment là (ce matin) j'ai été bloqué par un message m'avertissant que l'accès au répertoire choisi (c:\etc...) m'était refusé. J'ai essayé, sans succès, de modifier les droit d'accès au disque c: et/ou à ses répertoires. Je me sens frustré de ne pas pouvoir accéder à des répertoires que j'ai créés. Jusqu'où peut aller la schizophrénie des créateurs de Windows !!! Évidemment, me dira-t-on, c'est pour ma propre sécurit Je ne suis cependant pas sûr que les moyens qui ont été développés autour de cette sécurité-là l'aient été en tenant compte des désirs de l'utilisateur. Je suis même persuadé du contraire.

    Maintenant que je me suis permis de me soulager : quelqu'un pourrait-il m'aider ?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    quand tu créés un dossier dans C tu as les droits dessus, c'est C et certains dossiers de windows sur lequels tu n'as pas les droits
    donc lister sur C directement ne va pas fonctionner, ni même te retourner juste les dossiers sur lesquels tu as les droits

    comportement plus rassurant qu'énervant (comme quoi c'est une question de point de vue ^^)

    après soit tu modifies les droits sur C, soit tu donnes les plein pouvoirs à ton appli (ajouter un app.manifest et lire ce qu'il y a dedans), mais l'utilisateur se verra demander d'être admin et de valider à chaque lancement ...
    ou sinon tu fais un service qui lui a les droits admin et une appli normale qui demande à ton service les infos
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 49
    Par défaut Pas sûr d'avoir tout compris...
    Merci de m'avoir répondu. J'ai besoin d'explications supplémentaires, aussi je reprends ton message :

    "tu modifies les droits sur C"
    Je ne souhaite pas modifier les droits sur tout le disque C, mais seulement sur certains répertoires. Donc, je vais sur l'explorateur Windows, et sur "Propriétés" de mon premier répertoire (Program Files (x86) puis sur "Sécurité", et enfin sur "Modifier" après avoir choisi (au hasard) le premier groupe "TOUS LES PACKAGES D'APPLICATIONS", et c'est là que tout se complique : en effet, les modifications de droits apparaissent toutes en grisé (donc non modifiables) et cela est valable pour tous les noms de groupes ou d'utilisateurs. J'en déduis que pour ces programmes, il n'est pas possible de modifier quoi que ce soit du point de vue accès.

    "tu donnes les plein pouvoirs à ton appli (ajouter un app.manifest"
    Là, je ne sais pas ce qu'est un app.manifest, mais je veux bien que tu me donnes une référence pour le trouver. En supposant que là se trouve la solution, le seul utilisateur, c'est moi, et je cherche juste à faire la liste des applications contenues dans mon ordinateur avant de faire le grand ménage qui passera par la réinstallation de windows. Donc, je n'utiliserai que deux ou trois fois mon application, et je veux bien devenir administrateur. Je crois que c'est maintenant facile avec la dernière version de Windows 10, qui doit vérifier qui a tapé sur le clavier et qui propose maintenant de simplement continuer avec de nouveaux droits, si sa vérification est positive (Microsoft a bien mis 10 ans avant de se rendre compte que cette solution était la plus pratique).


    "et lire ce qu'il y a dedans"
    Je ne suis pas sûr d'avoir bien compris : vais-je trouver des informations pour la solution de mon problème en lisant cet "app.manifest" s'il s'agit d'un texte ? ou alors, cet "app" résout tout seul le problème (si c'est une sorte de procédure) qui donne des droit d'accès lorsqu'elle est lancée ? Je suis très impatient d'en savoir plus.

    "tu fais un service"
    Je n'ai jamais fait çà, mais ce n'est pas le sujet, vu l'utilisation que je veux faire de mon application.

    "une appli normale qui demande à ton service les infos"
    Pas sûr d'avoir compris comment une "appli normale" pourra questionner un service. Mais peut-être ne s'agit-il pas, comme je le suppose, d'une forme particulière d'application qui fonctionne en arrière-plan ?

    Encore merci de t'occuper de mon problème. J'ai bien conscience d'apparaître très nul… J'ai commencé l'utilisation pratique d'un ordinateur dans les années 1960, et l'étude des langages informatiques dans les années 1970 et j'en connaissais au moins quatre à une certaine époque. Mais le temps passe… (A ces époques, les ordinateurs étaient logés dans des grandes pièces et étaient nettement plus lents qu'aujourd'hui).

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    si tu veux juste trouver tous les .exe utilises la fonction de recherche de windows ...

    pour modifier les droits il faut désactiver l'héritage des droits pour un emplacement
    ceci n'a pas grand chose à voir avec le développement, tu pourras trouver des infos sur le net

    app.manifest ca s'ajoute dans un projet "ajouter nouvel élément", google aurait pu te dire ce que c'est
    et en effet ms a eut la bonne idée de mettre des valeurs par défaut et au passage de mettre en commentaire les lignes utiles pour modifier les paramètres
    il y a donc require je sais plus quoi qui permet d'avoir tous les droits pour l'appli
    cette solution devrait te convenir

    un service windows est une appli à instance unique démarrée avec windows (ou pas) et qui n'a pas d'interface

    une appli peut dialoguer avec un service ou avec autre chose d'ailleurs
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 49
    Par défaut Nouvelles difficultés
    Merci pour tous ces renseignements, très utiles pour moi.

    J'ai utilisé ton conseil N° 2 (app.manifest).

    D'abord en ajoutant ce fameux app.manifest qui, je le comprends maintenant, représente une liste de paramètres "à la carte". Pourquoi ces paramètres ne figurent-ils pas au menu, cela m'interroge. Mais il y a sûrement une bonne raison à ça.
    Malheureusement, sur les trois options proposées, concernant la sécurité, une seule est acceptée pour les applications "ClickOnce" : c'est celle qui est installée par défaut " <requestedExecutionLevel level="asInvoker" uiAccess="false" />".
    Les deux autres, "<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />" et "<requestedExecutionLevel level="highestAvailable" uiAccess="false" />" ne sont pas acceptées par les applications "ClickOnce". J'ai donc dû décocher "Activer les paramètres de sécurité ClickOnce" en pensant que j'arrivais au bout de mes peines. Hélas ! avec l'option "<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />", le système m'a (fort obligeamment, je le précise) demandé d'ouvrir "l'application" en tant qu'administrateur, ce que j'ai fait en pensant que "l'application" ne pouvait être que "Visual Studio".
    Trois fois hélas !!! : nouveau message lorsque j'essaye de lancer ma propre application : "System.UnauthorizedAccessException : l'accès au chemin d'accès 'C:\Program.Files (x86)' est refusé". Même aux administrateurs… Il faut probablement être au moins Président pour pouvoir accéder à ce chemin d'accès à l'accession. Et je me demande à quoi sert l'app.manifest...
    Le plus curieux est que mon application a marché jusqu'au bout lorsque le chemin d'accès était présenté comme un string écrit à l'avance dans la procédure. Celui-ci s'est mis brusquement à être inaccessible lorsque j'ai remplacé le string par un FolderBrowserDialog ! Comme quoi, cette sacrosaint sécurité n'est pas si sûre que ça…

    Bon, je prends 3 jours de vacances à partir de demain matin, et je reprendrais cet intéressant échange dimanche prochain.

    A +


    Au fait, je veux non seulement lister les applications .exe, mais aussi avoir la liste imprimée. Voilà l'explication de l'application (qui me donne beaucoup de fil à retordre).

  6. #6
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 49
    Par défaut Ça y est, ça marche !
    J'avais mal interprété les conseils : c'est l'application qui doit être ouverte en tant qu'administrateur, et non VB !
    Donc, je compile, et ensuite, j'ouvre le .exe fabriqué en tant qu'administrateur. Et ça marche...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Accès aux répertoires
    Par momomafioso dans le forum ASP.NET
    Réponses: 11
    Dernier message: 04/07/2007, 16h58
  2. [Système] Droits d'accès aux répertoires
    Par yohan0262 dans le forum Langage
    Réponses: 8
    Dernier message: 08/06/2007, 07h56
  3. Autoriser l'accès aux utilisateurs NT
    Par amireve dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/05/2007, 14h55
  4. Réponses: 7
    Dernier message: 15/12/2006, 09h22
  5. [Réseau] Autorisations d'accès aux fichiers
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 19/05/2004, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo