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

C# Discussion :

UAC, Manifest et Signatures en nom fort


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut UAC, Manifest et Signatures en nom fort
    Bonjour,

    Je développe une application qui doit lire et écrire dans le registre.
    Cette application tourne sous Vista et je dois me débrouiller pour qu'elle fonctionne même si l'UAC est activé.

    Pour cela, j'ai créé un fichier manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" 
    					xmlns="urn:schemas-microsoft-com:asm.v1" 
    					xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" 
    					xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" 
    				    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
          </requestedPrivileges>
        </security>
      </trustInfo>
    </asmv1:assembly>
    Et je dis dans les propriétés de mon projet de bien utiliser ce manifest.

    Cela fonctionne très bien (une fois que j'ai fini par comprendre qu'en debug, le manifest n'est pas chargé).

    Donc, maintenant, au lancement de mon application, Vista me demande si oui ou non je souhaite autoriser l'application. Si je l'autorise, cela fonctionne.

    Oui, mais voilà, maintenant, j'aimerai que mon application soit toujours autorisée, et qu'on ne demande pas à l'utilisateur si il autorise ou pas.

    J'avais cru comprendre qu'il fallait signature son programme avec une clé en nom fort.

    Est-ce bien vrai ?

    Je signe donc mon application... mais cela ne marche pas car, l'une des DLL utilisée en référence (ICSharpCode.SharpZipLib.dll pour ne pas la citer) n'est pas signée. Mais puisqu'elle ne m'appartient pas.. comment puis-je la signer ?

    Donc pour résumer, 2 questions :

    Est-il vrai que "signer" mon programme permettra à l'UAC de toujours autoriser son exécution ?

    Comment signer une DLL dont on a pas le code source ?

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Citation Envoyé par alexadvance Voir le message
    Oui, mais voilà, maintenant, j'aimerai que mon application soit toujours autorisée, et qu'on ne demande pas à l'utilisateur si il autorise ou pas.
    Je ne crois pas que ce soit possible, à moins de désactiver l'UAC.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par alexadvance Voir le message
    J'avais cru comprendre qu'il fallait signature son programme avec une clé en nom fort.

    Est-ce bien vrai ?
    Non, ça n'a pas de rapport a priori

    Citation Envoyé par alexadvance Voir le message
    Je signe donc mon application... mais cela ne marche pas car, l'une des DLL utilisée en référence (ICSharpCode.SharpZipLib.dll pour ne pas la citer) n'est pas signée.[/B]
    cf. ces 2 articles d'Eric Lippert sur le sujet...
    http://blogs.msdn.com/ericlippert/ar...and-jones.aspx
    http://blogs.msdn.com/ericlippert/ar...ng-naming.aspx

    Citation Envoyé par alexadvance Voir le message
    Comment signer une DLL dont on a pas le code source ?[/B]
    Je crois que tu peux le faire avec l'outil sn.exe (Strong Name tool), dispo dans le .NET SDK. Regarde dans la liste des options disponibles, y en a une qui sert à ça. Mais bon, a priori ça changera rien à ton problème d'UAC.

    Citation Envoyé par The_badger_man Voir le message
    Je ne crois pas que ce soit possible, à moins de désactiver l'UAC.
    Je crois que c'est possible avec les version pro de Vista, il y a un truc pour configurer "finement" l'UAC. Avec les versions familiales, c'est du tout ou rien.

  4. #4
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Je crois que c'est possible avec les version pro de Vista, il y a un truc pour configurer "finement" l'UAC. Avec les versions familiales, c'est du tout ou rien.
    Dans Seven oui, mais pas dans Vista. Et c'est pas vraiment fin, juste 4 niveaux de notifications.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par The_badger_man Voir le message
    Dans Seven oui, mais pas dans Vista. Et c'est pas vraiment fin, juste 4 niveaux de notifications.
    Ah ok... j'avais pas eu l'occasion d'essayer. En tous cas sous Seven édition familiale, y a effectivement 4 niveaux

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut
    Merci,

    Bon, je vais laisser tomber la signature alors si ca n'est pas mon problème et regarder du coté du paramétrage de l'UAC.

    Mon programme a pour prérequis de tourner sur Pro ou Intégrale, je devrais avoir peut être un peu plus de chance de trouver le bon réglage...dans la mmc peut être...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par alexadvance Voir le message
    ...dans la mmc peut être...
    Bon l'UAC sous Vista, c'est blanc ou noir... flute ! (pour être poli)

Discussions similaires

  1. Signature de nom fort ?
    Par Shadam dans le forum VB.NET
    Réponses: 2
    Dernier message: 12/08/2011, 09h38
  2. Réponses: 0
    Dernier message: 12/07/2008, 10h41
  3. Signer une dll avec un nom fort
    Par didierll dans le forum Framework .NET
    Réponses: 2
    Dernier message: 24/09/2007, 17h51
  4. [vs 2005] nom fort pour dll
    Par Husqvarna dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 27/02/2007, 19h20

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